Notes towards making Debian packages for Demeter

Links:

The following lists are requirements for building and running DEMETER. These notes were assembled on an Ubuntu machine. YMMV with respect to Debian or another Debian-based system.

Once all this stuff is in place, building DEMETER should be as simple as the standard perl incantation:

perl Build.PL
./Build
./Build install

Required packages

This list is culled from the Build.PL file and from an analysis of modules loaded by a script using App::FatPacker::Trace

Perl resources

All of these packages already exist in Ubuntu. These are DEMETER's dependencies.

  1. perl
  2. perl-base
  3. perl-modules
  4. libperl5.22
  5. libarchive-zip-perl
  6. libautodie-perl
  7. libb-hooks-endofscope-perl
  8. libcapture-tiny-perl
  9. libchemistry-elements-perl
  10. libclass-accessor-perl
  11. libcommon-sense-perl
  12. libconfig-ini-perl
  13. libconst-fast-perl
  14. libdata-alias-perl
  15. libdata-dump-perl
  16. libdata-optlist-perl
  17. libdatetime-perl
  18. libdevel-globaldestruction-perl
  19. libdigest-sha-perl
  20. libexporter-tiny-perl
  21. libfile-copy-recursive-perl
  22. libfile-countlines-perl
  23. libfile-find-rule-perl
  24. libfile-touch-perl
  25. libfile-which-perl
  26. libgraph-perl
  27. libgraphics-gnuplotif-perl
  28. libheap-perl
  29. libjson-perl
  30. libjson-xs-perl
  31. liblist-moreutils-perl
  32. libmath-combinatorics-perl
  33. libmath-derivative-perl
  34. libmath-random-perl
  35. libmath-round-perl
  36. libmath-spline-perl
  37. libmixin-linewise-perl
  38. libmodule-implementation-perl
  39. libmodule-runtime-perl
  40. libmoo-perl
  41. libmoose-perl
  42. libmoosex-aliases-perl
  43. libmoosex-types-perl
  44. libmro-compat-perl
  45. libnamespace-autoclean-perl
  46. libnamespace-clean-perl
  47. libnumber-compare-perl
  48. libpackage-stash-perl
  49. libpackage-stash-xs-perl
  50. libparams-util-perl
  51. libparams-validate-perl
  52. libpdl-stats-perl
  53. libperlio-utf8-strict-perl
  54. libpod-pom-perl
  55. libregexp-assemble-perl
  56. libregexp-common-perl
  57. libscalar-list-utils-perl
  58. libspreadsheet-writeexcel-perl
  59. libstatistics-descriptive-perl
  60. libsub-exporter-perl
  61. libsub-exporter-progressive-perl
  62. libsub-identify-perl
  63. libsub-install-perl
  64. libsub-name-perl
  65. libterm-readline-gnu-perl
  66. libterm-sk-perl
  67. libterm-twiddle-perl
  68. libtext-glob-perl
  69. libtext-template-perl
  70. libtext-unidecode-perl
  71. libtree-simple-perl
  72. libtry-tiny-perl
  73. libtype-tiny-perl
  74. libtypes-serialiser-perl
  75. libvariable-magic-perl
  76. libwant-perl
  77. libwx-perl
  78. libxmlrpc-lite-perl
  79. libyaml-tiny-perl
  80. pdl

Non perl resources

Some more dependency package names:

  1. ifeffit (the one Carlo made many moons ago should be just fine and should be available for debian +_ ubuntu + ...)
  2. gnuplot5
  3. gnuplot5-qt (or gnuplot5-x11 or gnuplot5-wxt)
  4. gnuplot5-data

Todo

things needed to compile up ifeffit or use the ifeffit that got made years ago, also pgplot (there is a pgplot5 ubuntu package)

Build requires

The following packages are required to build DEMETER, but are not required to be installed on a computer running DEMETER.

  1. libfile-copy-recursive-perl
  2. libfile-slurper-perl
  3. libcapture-tiny-perl
  4. libextutils-cbuilder-perl

Building the document with sphinx. Note that sphinx must be version 1.3. If the packaged version is 1.2, then the DEMETER document will not get made correctly.

  1. sphinx-doc
  2. sphinx-common
  3. pybtex

other sphinx resources can be installed using pip, available in the “python-pip” package:

  1. sphinxcontrib-bibtex

More document building details here

Note that the documentation will be built and installed to <install_dir>/Demeter/share/documentation/Athena/ where <install_dir> is whatever is returned when you run this:

perl -e 'use File::Basename; use Demeter; print dirname($INC{"Demeter.pm"}), $/'

There are four documentation folders: Athena, Artemis, DPG, and SingleFile.

Missing in Ubuntu

These are modules used by DEMETER that are not packaged for Ubuntu. These packages would have to be made and provided.

  1. MooseX::Types::LaxNum (essential, cannot be worked around, cannot be replaced)
  2. Encoding::FixLatin (required, but could work around)
  3. HTML::Entities (what uses this? may not be necessary)
  4. Pod::ProjectDocs (only required for building)
  5. File::Monitor::Lite (only needed by a feature of ATHENA that is currently disabled)



DEMETER is copyright © 2009-2016 Bruce Ravel – This document is copyright © 2016 Bruce Ravel

This document is licensed under The Creative Commons Attribution-ShareAlike License.

If DEMETER and this document are useful to you, please consider supporting The Creative Commons.