build: add snap packaging (experimental)
[vpp.git] / extras / snap / snapcraft.yaml
1 name: vpp
2 base: core18
3 version: '20.05'
4 summary: Vector Packet Processor
5 description: |
6          High performance user-mode network stack
7
8 grade: devel
9 confinement: classic
10
11 parts:
12   vpp:
13     source-type: tar
14     source: vpp.tgz
15     plugin: nil
16     build-packages:
17       - gcc-8
18       - make
19       - libnuma-dev
20     stage-packages:
21       # For the dpdk plugin
22       - libnuma1
23     override-build: |
24       UNATTENDED=y make install-dep build-release
25     override-prime: |
26       # Copy the build results into SNAPCRAFT_PRIME
27       cd $SNAPCRAFT_PART_BUILD/build-root/install-vpp-native
28       tar cf - . | (cd $SNAPCRAFT_PRIME ; tar xf -)
29       # Copy staged libraries into SNAPCRAFT_PRIME
30       cp $SNAPCRAFT_STAGE/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/lib* $SNAPCRAFT_PRIME/vpp/lib
31       # Strip (unneeded) symbols
32       cd $SNAPCRAFT_PRIME
33       find . -type f -exec strip --strip-unneeded '{}' ';' 2> /dev/null || true
34
35 apps:
36   vpp:
37     command: vpp/bin/vpp -c $SNAP/vpp/etc/vpp/startup.conf
38     daemon: simple
39     environment:
40         "LD_LIBRARY_PATH": "$SNAP/vpp/lib:$SNAP/vpp/lib/vpp_plugins:$SNAP/vpp/lib/vpp_api_test_plugins"
41
42   vppctl:
43     command: vpp/bin/vppctl
44     environment:
45         "LD_LIBRARY_PATH": "$SNAP/vpp/lib"
46
47   vpp-api-test:
48     command: vpp/bin/vpp_api_test
49     environment:
50         "LD_LIBRARY_PATH": "$SNAP/vpp/lib"
51
52   svmtool:
53     command: vpp/bin/svmtool
54     environment:
55         "LD_LIBRARY_PATH": "$SNAP/vpp/lib"