Python Library dependencies
Bug #1256305 reported by
Alfons Laarman
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
opaal |
Fix Released
|
Undecided
|
Andreas Engelbredt Dalsgaard |
Bug Description
Would it be possible to make some library dependencies optional, e.g.:
mpi
ply (include generated lexers/parsers)
OrderedDictionary (Only include since Python 2.7, which is not installed on most systems)
This would greatly simplify installing opaal.
The second step would be to include in the package:
pydbm
pyuppaal
udbm
The current installation process is a horror if you lack the administrator rights to use the install script
To post a comment you must log in.
The primary goal here seems to be to support installation on cluster systems or e.g. an application server where the user does not have root access. If you look in the install script most of the installation can be done without the need for root access. There is a list of packages that the script currently requires to be installed on the root system. For Ubuntu the packages are:
bzr build-essential libtool automake libc6-dev-i386 libboost-all-dev swig git python2.7-ply ant flex libpopt-dev libtbb-dev openjdk-7-jdk python2.7-numpy
It should be reasonable to expect an administrator would install most of these without any objections. The most doubtful package would probably be openjdk-7-jdk depending on the policies for how versions of java is maintained, e.g. seperately from the OS package management system.
For the usecase where we would want to avoid the need for admins to install any packages we should recommend the use of Enthought Python Distribution(EPD) as mentioned in the install script to ease the installation of python libraries. However, there is still a number of things that would need to be done to avoid depends on an admin to install the before mentioned packages. I've tried to make a list from memory of what the packages are used for and a fix that would enable installation without root access:
1: Packages: "bzr git" are used to checkout the latest versions of various projects. Fix: Distribute tarballs of all the projects.
2: Packages: "ant openjdk-7-jdk" are used for compiling LTSmin. Fix: change the compilation arguments of LTSmin.
3: Packages: "python2.7-ply flex" are used by the parser in pyuppaal and opaal. Fix: I recall looking into this at some point but apparently only few people are redistributing the parser without these packages. It might be possible to include the needed python files. Similarly it should be possible to avoid automatically invoking flex but both will require some further investication.
4: The package: "python2.7-numpy" is used by the precomputation for the LU-extrapolation. Fix: Should be included in EPD.
5: Packages: "build-essential libtool automake libc6-dev-i386 libboost-all-dev libpopt-dev libtbb-dev swig" are used for compiling the DBM library, python bindings for the DBM library and LTSmin. Fix: We should distribute precompiled binaries for the mentioned projects. As LTSmin and the DBM library are optimised at compile time we should maybe include a script to test if the user is trying to install it on a system that will result in poor performance, e.g., with a different cache line size.
Further discussion, patches or work on any of the issues would be most welcome!