.. _snap_doc:

VPP Snap Build
==============

The external dependency package will not build in the snapcraft vm. The
path of least resistance is to copy it to the root of the (original)
workspace before running the prep script.

Snapcraft has mount issues except under /home. Run the prep script and
copy the entire directory (including the .tgz file) under
/home/yourself.

Run the prep script
-------------------

::

     $ cd <vpp-workspace>/extras/snap
     $ ./prep

Copy data to /home (if necessary)

::

     $ mkdir /home/xxx
     $ cd <vpp-workspace>/extras/snap
     $ cp * /home/xxx

   Set snapcraft environment variables
   -----------------------------------

   Minimum requirements:

SNAPCRAFT_BUILD_ENVIRONMENT_MEMORY=16G
SNAPCRAFT_BUILD_ENVIRONMENT_DISK=32G

::


   Optional:

SNAPCRAFT_BUILD_ENVIRONMENT_CPU=8 SNAPCRAFT_ENABLE_DEVELOPER_DEBUG=yes

::


   Run snapcraft
   -------------

   With luck, simply running snapcraft will produce the snap

$ snapcraft [–debug]

::


   Rerunning snapcraft phases
   --------------------------

   Here's how to (re)run individual phases, to avoid starting from
   scratch N times in case of errors:

snapcraft pull [] snapcraft build [] snapcraft stage [] snapcraft prime
[] snapcraft snap or snapcraft

::


   Restart without rebuilding VM
   -----------------------------

   To restart from scratch without rebuilding the VM:

snapcraft clean vpp

::


   Delete (all) snapcraft VMs
   --------------------------

for vm in $(multipass list \| awk ‘{print $1}’ \| grep ^snapcraft-); do
multipass delete $vm –purge done \``\`
