| | 1 | = Group Meeting on Linux Distribution = |
| | 2 | |
| | 3 | == What we need == |
| | 4 | 1. Distribution mechanism |
| | 5 | 1. Way to handle dependencies |
| | 6 | |
| | 7 | == Distribution approaches == |
| | 8 | 1. '''shar''' (shell archive) files |
| | 9 | * Pro: Used for Chimera |
| | 10 | * Pro: Lots of flexibility |
| | 11 | * Con: We have to manage dependency checking |
| | 12 | 1. '''deb/rpm''' - native linux packagers |
| | 13 | * Pro: Can handle dependency checking easily |
| | 14 | * Pro: Pretty flexible |
| | 15 | * Pro: All Linux users will be familiar with this approach |
| | 16 | 1. '''Autoconf''' |
| | 17 | * Pro: Autoconf was also mentioned a lot, but primarily when sources are involved. |
| | 18 | * Con: Not really accessible for most Linux users |
| | 19 | * Pro: Most Linux developers will be very familiar with it |
| | 20 | * Both pro and con: Can handle dependency checking, assuming we embed that into the configuration file |
| | 21 | 1. '''pip/pypi''' |
| | 22 | * Pro: Native Python packager/distribution |
| | 23 | * Con: Not clear how we would handle dependency checking |
| | 24 | * Con: Not clear how we would register app with the system |
| | 25 | |
| | 26 | == Dependency Management == |
| | 27 | 1. Static linking |
| | 28 | * Pro: We deliver all dependencies. No dependency issues |
| | 29 | * Con: Upstream bug fixes/security enhancements won't get propagated |
| | 30 | * Con: distribution will be very large |
| | 31 | 1. Deliver all dependencies in ChimeraX lib |
| | 32 | * Pro's and Con's are essentially the same as above |
| | 33 | |
| | 34 | == Suggested Approach (long term) == |
| | 35 | 1. Provide our own repostory |
| | 36 | * Include rpm or deb files for all dependencies as well as for ChimeraX itself |
| | 37 | 1. Users would download an rpm/deb that added our repository to their repo list |
| | 38 | * This would include creating the appropriate keys |
| | 39 | 1. Users would install (or update) ChimeraX |
| | 40 | * If the system already has the necessary dependencies, no more will be added |
| | 41 | * Missing dependencies would be pulled from our repository and installed |
| | 42 | |
| | 43 | == Suggested Approach (for December release) == |
| | 44 | 1. Use shar to distribute |
| | 45 | 1. Add the libicu 52 shared objects to ChimeraX's local library |
| | 46 | * libicu ''is'' the problem. Linux library major version numbers are supposed to indicate API compatibility |
| | 47 | * libicu major version numbers indicate Unicode changes (e.g. addition of new characters) |
| | 48 | * ICU releases a new major version every 6 months... |
| | 49 | |