wiki:2015-11-16

Group Meeting on Linux Distribution

What we need

  1. Distribution mechanism
  2. 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
  2. deb/rpm - native linux packagers
    • Pro: Can handle dependency checking easily
    • Pro: Pretty flexible
    • Pro: All Linux users will be familiar with this approach
  3. 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
  4. 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
  2. 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
  2. Users would download an rpm/deb that added our repository to their repo list
    • This would include creating the appropriate keys
  3. 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
  2. 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...
Last modified 10 years ago Last modified on Nov 16, 2015, 10:42:33 AM
Note: See TracWiki for help on using the wiki.