Notes towards making Debian packages for Demeter


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 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


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{""}), $/'

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.