build: add snap packaging (experimental)
Type: feature Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I5a5efde5378f63d89d82d71ae009c7595aaa800c
This commit is contained in:

committed by
Florin Coras

parent
6a32ce3264
commit
6d97e62c00
16
Makefile
16
Makefile
@ -207,6 +207,8 @@ help:
|
|||||||
@echo " run-vat - run vpp-api-test tool"
|
@echo " run-vat - run vpp-api-test tool"
|
||||||
@echo " pkg-deb - build DEB packages"
|
@echo " pkg-deb - build DEB packages"
|
||||||
@echo " pkg-deb-debug - build DEB debug packages"
|
@echo " pkg-deb-debug - build DEB debug packages"
|
||||||
|
@echo " pkg-snap - build SNAP package"
|
||||||
|
@echo " snap-clean - clean up snap build environment"
|
||||||
@echo " vom-pkg-deb - build vom DEB packages"
|
@echo " vom-pkg-deb - build vom DEB packages"
|
||||||
@echo " vom-pkg-deb-debug - build vom DEB debug packages"
|
@echo " vom-pkg-deb-debug - build vom DEB debug packages"
|
||||||
@echo " pkg-rpm - build RPM packages"
|
@echo " pkg-rpm - build RPM packages"
|
||||||
@ -578,6 +580,20 @@ run-vat:
|
|||||||
pkg-deb:
|
pkg-deb:
|
||||||
$(call make,$(PLATFORM),vpp-package-deb)
|
$(call make,$(PLATFORM),vpp-package-deb)
|
||||||
|
|
||||||
|
.PHONY: pkg-snap
|
||||||
|
pkg-snap:
|
||||||
|
cd extras/snap ; \
|
||||||
|
./prep ; \
|
||||||
|
SNAPCRAFT_BUILD_ENVIRONMENT_MEMORY=8G \
|
||||||
|
SNAPCRAFT_BUILD_ENVIRONMENT_CPU=6 \
|
||||||
|
snapcraft --debug
|
||||||
|
|
||||||
|
.PHONY: snap-clean
|
||||||
|
snap-clean:
|
||||||
|
cd extras/snap ; \
|
||||||
|
snapcraft clean ; \
|
||||||
|
rm -f *.snap *.tgz
|
||||||
|
|
||||||
.PHONY: vom-pkg-deb
|
.PHONY: vom-pkg-deb
|
||||||
vom-pkg-deb: pkg-deb
|
vom-pkg-deb: pkg-deb
|
||||||
$(call make,$(PLATFORM),vom-package-deb)
|
$(call make,$(PLATFORM),vom-package-deb)
|
||||||
|
11
extras/snap/prep
Executable file
11
extras/snap/prep
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
cd ../../build-root
|
||||||
|
echo "make distclean..."
|
||||||
|
make distclean > /dev/null 2>&1
|
||||||
|
cd ../
|
||||||
|
echo "construct source tarball..."
|
||||||
|
tar -zcf extras/snap/vpp.tgz --exclude=extras/snap/vpp.tgz .
|
||||||
|
exit 0
|
55
extras/snap/snapcraft.yaml
Normal file
55
extras/snap/snapcraft.yaml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
name: vpp
|
||||||
|
base: core18
|
||||||
|
version: '20.05'
|
||||||
|
summary: Vector Packet Processor
|
||||||
|
description: |
|
||||||
|
High performance user-mode network stack
|
||||||
|
|
||||||
|
grade: devel
|
||||||
|
confinement: classic
|
||||||
|
|
||||||
|
parts:
|
||||||
|
vpp:
|
||||||
|
source-type: tar
|
||||||
|
source: vpp.tgz
|
||||||
|
plugin: nil
|
||||||
|
build-packages:
|
||||||
|
- gcc-8
|
||||||
|
- make
|
||||||
|
- libnuma-dev
|
||||||
|
stage-packages:
|
||||||
|
# For the dpdk plugin
|
||||||
|
- libnuma1
|
||||||
|
override-build: |
|
||||||
|
UNATTENDED=y make install-dep build-release
|
||||||
|
override-prime: |
|
||||||
|
# Copy the build results into SNAPCRAFT_PRIME
|
||||||
|
cd $SNAPCRAFT_PART_BUILD/build-root/install-vpp-native
|
||||||
|
tar cf - . | (cd $SNAPCRAFT_PRIME ; tar xf -)
|
||||||
|
# Copy staged libraries into SNAPCRAFT_PRIME
|
||||||
|
cp $SNAPCRAFT_STAGE/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/lib* $SNAPCRAFT_PRIME/vpp/lib
|
||||||
|
# Strip (unneeded) symbols
|
||||||
|
cd $SNAPCRAFT_PRIME
|
||||||
|
find . -type f -exec strip --strip-unneeded '{}' ';' 2> /dev/null || true
|
||||||
|
|
||||||
|
apps:
|
||||||
|
vpp:
|
||||||
|
command: vpp/bin/vpp -c $SNAP/vpp/etc/vpp/startup.conf
|
||||||
|
daemon: simple
|
||||||
|
environment:
|
||||||
|
"LD_LIBRARY_PATH": "$SNAP/vpp/lib:$SNAP/vpp/lib/vpp_plugins:$SNAP/vpp/lib/vpp_api_test_plugins"
|
||||||
|
|
||||||
|
vppctl:
|
||||||
|
command: vpp/bin/vppctl
|
||||||
|
environment:
|
||||||
|
"LD_LIBRARY_PATH": "$SNAP/vpp/lib"
|
||||||
|
|
||||||
|
vpp-api-test:
|
||||||
|
command: vpp/bin/vpp_api_test
|
||||||
|
environment:
|
||||||
|
"LD_LIBRARY_PATH": "$SNAP/vpp/lib"
|
||||||
|
|
||||||
|
svmtool:
|
||||||
|
command: vpp/bin/svmtool
|
||||||
|
environment:
|
||||||
|
"LD_LIBRARY_PATH": "$SNAP/vpp/lib"
|
Reference in New Issue
Block a user