#-------------------------------------------------------------------------------
# This file contains operating system package requirements for Engine core.
# Do not modify this file unless you know what you are doing.
# Modifying this file may result in unexpected behavior.
#-------------------------------------------------------------------------------

# NOTE (fdegir): engine core operating system package requirements
# Please note that these are the most basic requirements to install in order
# for engine to start. Additional requirements must be maintained in stack
# repositories.
curl            [platform:dpkg]
gcc             [platform:dpkg]
git             [platform:dpkg]
libffi-dev      [platform:dpkg]
libpython3-dev  [platform:dpkg]
libssl-dev      [platform:dpkg]
lsb-release     [platform:dpkg]
make            [platform:dpkg]
net-tools       [platform:dpkg]
python3-minimal [platform:dpkg]
python3-pip     [platform:dpkg]
python3-yaml    [platform:dpkg]
virtualenv      [platform:dpkg]
wget            [platform:dpkg]

# vim: set ts=2 sw=2 expandtab:
