misc: fix snap image build
Clean up snapcraft.yaml bit rot, switch to Ubuntu 20.04, add README.md Type: improvement Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I2e0d3925cf43541e70b59083f8c91af539aa34e6
This commit is contained in:
83
extras/snap/README.md
Normal file
83
extras/snap/README.md
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
General
|
||||||
|
-------
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
```
|
||||||
|
$ <environment-variable-settings> 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 [<part-name>]
|
||||||
|
snapcraft build [<part-name>]
|
||||||
|
snapcraft stage [<part-name>]
|
||||||
|
snapcraft prime [<part-name>]
|
||||||
|
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
|
||||||
|
```
|
@ -5,6 +5,8 @@ set -eu
|
|||||||
cd ../../build-root
|
cd ../../build-root
|
||||||
echo "make distclean..."
|
echo "make distclean..."
|
||||||
make distclean > /dev/null 2>&1
|
make distclean > /dev/null 2>&1
|
||||||
|
# make sure we don't trip over a symbolic link later
|
||||||
|
rm -f .ccache
|
||||||
cd ../
|
cd ../
|
||||||
echo "construct source tarball..."
|
echo "construct source tarball..."
|
||||||
tar -zcf extras/snap/vpp.tgz --exclude=extras/snap/vpp.tgz .
|
tar -zcf extras/snap/vpp.tgz --exclude=extras/snap/vpp.tgz .
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
name: vpp
|
name: vpp
|
||||||
base: core18
|
base: core20
|
||||||
version: '20.05'
|
version: '21.01'
|
||||||
summary: Vector Packet Processor
|
summary: Vector Packet Processor
|
||||||
description: |
|
description: |
|
||||||
High performance user-mode network stack
|
High performance user-mode network stack
|
||||||
@ -17,14 +17,16 @@ parts:
|
|||||||
- gcc-8
|
- gcc-8
|
||||||
- make
|
- make
|
||||||
- libnuma-dev
|
- libnuma-dev
|
||||||
|
- libpcap-dev
|
||||||
stage-packages:
|
stage-packages:
|
||||||
# For the dpdk plugin
|
# For the dpdk plugin
|
||||||
- libnuma1
|
- libnuma1
|
||||||
override-build: |
|
override-build: |
|
||||||
UNATTENDED=y make install-dep build-release
|
dpkg -i vpp-ext-deps*.deb || true
|
||||||
|
UNATTENDED=y make install-dep install-ext-deps build-release
|
||||||
override-prime: |
|
override-prime: |
|
||||||
# Copy the build results into SNAPCRAFT_PRIME
|
# Copy the build result into SNAPCRAFT_PRIME
|
||||||
cd $SNAPCRAFT_PART_BUILD/build-root/install-vpp-native
|
cd $SNAPCRAFT_PART_SRC/../build/build-root/install-vpp-native
|
||||||
tar cf - . | (cd $SNAPCRAFT_PRIME ; tar xf -)
|
tar cf - . | (cd $SNAPCRAFT_PRIME ; tar xf -)
|
||||||
# Copy staged libraries into SNAPCRAFT_PRIME
|
# Copy staged libraries into SNAPCRAFT_PRIME
|
||||||
cp $SNAPCRAFT_STAGE/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/lib* $SNAPCRAFT_PRIME/vpp/lib
|
cp $SNAPCRAFT_STAGE/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/lib* $SNAPCRAFT_PRIME/vpp/lib
|
||||||
|
Reference in New Issue
Block a user