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