diff options
author | Sachin Saxena <sachin.saxena@freescale.com> | 2018-02-28 20:28:52 +0530 |
---|---|---|
committer | Sachin Saxena <sachin.saxena@nxp.com> | 2018-02-28 20:34:56 +0530 |
commit | 0689fce93ba269c48f83a2f70f971b3976d04c90 (patch) | |
tree | 4cc2908df3598507cc1828ac19d8c43b22450ffa /build-root/deb/debian | |
parent | 746b57564deede624261ab8a96c94f562f24d22c (diff) | |
parent | d594711a5d79859a7d0bde83a516f7ab52051d9b (diff) |
Merge branch 'stable/1710' of https://gerrit.fd.io/r/vpp into 17101710
Diffstat (limited to 'build-root/deb/debian')
-rw-r--r-- | build-root/deb/debian/.gitignore | 13 | ||||
-rwxr-xr-x | build-root/deb/debian/README.vpp | 56 | ||||
-rwxr-xr-x | build-root/deb/debian/compat | 1 | ||||
-rw-r--r-- | build-root/deb/debian/control | 67 | ||||
-rw-r--r-- | build-root/deb/debian/copyright | 9 | ||||
-rwxr-xr-x | build-root/deb/debian/rules | 39 | ||||
-rwxr-xr-x | build-root/deb/debian/source/format | 1 | ||||
-rw-r--r-- | build-root/deb/debian/vpp-bin.README.Debian | 53 | ||||
-rw-r--r-- | build-root/deb/debian/vpp.postinst | 8 | ||||
-rw-r--r-- | build-root/deb/debian/vpp.postrm | 21 | ||||
-rw-r--r-- | build-root/deb/debian/vpp.preinst | 4 | ||||
-rw-r--r-- | build-root/deb/debian/vpp.service | 14 | ||||
-rw-r--r-- | build-root/deb/debian/vpp.upstart | 21 |
13 files changed, 307 insertions, 0 deletions
diff --git a/build-root/deb/debian/.gitignore b/build-root/deb/debian/.gitignore new file mode 100644 index 00000000..7b1028d6 --- /dev/null +++ b/build-root/deb/debian/.gitignore @@ -0,0 +1,13 @@ +changelog +files +*debhelper* +*.substvars +*.install +vpp/ +vpp-dev/ +vpp-lib/ +vpp-dbg/ +vppctl/ +vpp-api-lua/ +vpp-api-java/ +vpp-api-python/ diff --git a/build-root/deb/debian/README.vpp b/build-root/deb/debian/README.vpp new file mode 100755 index 00000000..b343c786 --- /dev/null +++ b/build-root/deb/debian/README.vpp @@ -0,0 +1,56 @@ +Building DEB packages +===================== + +REQUIREMENTS: + You will need a working Internet connection to execute the build, because + the build procedure for the included "dpdk" project attempts to contact the + Internet host "dpdk.org". + +There are three main parts to the process: + a) Stage the source tree so that dpkg-source will recognize its organization + and create a valid DSC source package for you; + b) Ensure that the tools required for building DEB packages are installed; + and + c) Launch the build. + +1) Create, or have on hand, a local clone of the git repository, with no +untracked files or local modifications pending, up-to-date with the branch or +commit reference from which you wish to construct the source release. + +The branch and repository origins will differ based on local conditions. + +Example: +$ git clone -b master ssh://git@example.com:7999/~username/open-vpp + +("-b master" can be omitted since master is the default branch) + +2) Rename the checkout with a version number embedded in its name as is +conventional for code releases. Again, your version number may vary. + +Example: +$ mv open-vpp open-vpp-0.0.0 + +3) Ensure that the dpkg-buildpackage program is installed. + +E.g., + +# apt-get install dpkg-dev + +4) From the PARENT directory of the debian/ directory, run: + +$ cd open-vpp-0.0.0 +$ dpkg-buildpackage -I .git -us -uc + +(The -us and -uc flags omit GPG signatures from the .dsc and .changes files, +respectively. You can add them later, or if you are preparing a signed release +and have the signing key on hand, leave off the flags.) + +5) Get rid of the source directory; you now either have a source package with +which you can re-create it at any time, or there were problems with the build, +and you should go back to your git checkout to fix them. + +$ rm -r open-vpp-0.0.0 + +END + +vim:set ai et sw=4 ts=4 tw=80: diff --git a/build-root/deb/debian/compat b/build-root/deb/debian/compat new file mode 100755 index 00000000..ec635144 --- /dev/null +++ b/build-root/deb/debian/compat @@ -0,0 +1 @@ +9 diff --git a/build-root/deb/debian/control b/build-root/deb/debian/control new file mode 100644 index 00000000..4ed42b36 --- /dev/null +++ b/build-root/deb/debian/control @@ -0,0 +1,67 @@ +Source: vpp +Section: net +Priority: extra +Maintainer: Cisco OpenVPP Packaging Team <bogus.address@cisco.com> +Build-Depends: debhelper (>= 9), dh-systemd, dh-python, chrpath, python-all +Standards-Version: 3.9.4 + +Package: vpp +Architecture: any +Depends: vpp-lib (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends}, ${python:Depends} +Description: Vector Packet Processing--executables + This package provides VPP executables: vpp, vpp_api_test, vpp_json_test + vpp - the vector packet engine + vpp_api_test - vector packet engine API test tool + vpp_json_test - vector packet engine JSON test tool + +Package: vpp-dbg +Architecture: any +Depends: ${misc:Depends} +Description: Vector Packet Processing--debug symbols + +Package: vpp-dev +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends} +Description: Vector Packet Processing--development support + This package contains development support files for the VPP libraries + . + +Package: vpp-lib +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Vector Packet Processing--runtime libraries + This package contains the VPP shared libraries, including: + . + vppinfra - foundation library supporting vectors, hashes, bitmaps, pools, and string formatting. + svm - vm library + vlib - vector processing library + vlib-api - binary API library + vnet - network stack library + +Package: vpp-plugins +Architecture: any +Depends: vpp (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Vector Packet Processing--runtime plugins + This package contains VPP plugins + . + +Package: vpp-api-lua +Architecture: any +Depends: ${misc:Depends}, vpp (= ${source:Version}) +Description: VPP LUA API bindings + This package contains VPP lua api bindings + . + +Package: vpp-api-java +Architecture: any +Depends: ${misc:Depends}, vpp (= ${source:Version}) +Description: VPP Java API bindings + This package contains VPP java api bindings + . + +Package: vpp-api-python +Architecture: any +Depends: ${python:Depends}, ${misc:Depends}, vpp (= ${source:Version}) +Description: VPP Python API bindings + This package contains VPP python api bindings + . diff --git a/build-root/deb/debian/copyright b/build-root/deb/debian/copyright new file mode 100644 index 00000000..f9775c15 --- /dev/null +++ b/build-root/deb/debian/copyright @@ -0,0 +1,9 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: optional. +Upstream-Contact: optional. +Source: optional. +Disclaimer: optional. +Comment: optional. +License: Apache-2.0 +Copyright: 2015 Cisco and/or its affiliates and others. + diff --git a/build-root/deb/debian/rules b/build-root/deb/debian/rules new file mode 100755 index 00000000..3a1dd290 --- /dev/null +++ b/build-root/deb/debian/rules @@ -0,0 +1,39 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +DH_VERBOSE = 1 + +# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/* +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/default.mk + +# see FEATURE AREAS in dpkg-buildflags(1) +#export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +# see ENVIRONMENT in dpkg-buildflags(1) +# package maintainers to append CFLAGS +#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic +# package maintainers to append LDFLAGS +#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed + +export PYBUILD_NAME = vpp-api-python +export PYBUILD_DIR = ../../src/vpp-api/python +export PYBUILD_DESTDIR_python2=debian/vpp-api-python/ +export PYBUILD_DISABLE_python2=test +export PYBUILD_SYSTEM=distutils + +# main packaging script based on dh7 syntax +%: + dh $@ --with systemd,python2 --buildsystem=pybuild + +override_dh_install: + dh_install --exclude .git + ../scripts/remove-rpath . + +override_dh_shlibdeps: + @dh_shlibdeps 2>&1 \ + | grep -v "probably a plugin" \ + | grep -v "similar warnings have been skipped" + +override_dh_strip: + dh_strip --dbg-package=vpp-dbg diff --git a/build-root/deb/debian/source/format b/build-root/deb/debian/source/format new file mode 100755 index 00000000..89ae9db8 --- /dev/null +++ b/build-root/deb/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/build-root/deb/debian/vpp-bin.README.Debian b/build-root/deb/debian/vpp-bin.README.Debian new file mode 100644 index 00000000..19228969 --- /dev/null +++ b/build-root/deb/debian/vpp-bin.README.Debian @@ -0,0 +1,53 @@ +To run vpp with the debug shell: + +sudo vpp unix interactive + +which will result in a prompt that looks like: + +DBGvpd# + +To give it a spin, we can create a tap interface and try a simple ping +(with trace). + +To create the tap: + +DBGvpd# tap connect foobar +Created tap-0 for Linux tap 'foobar' +DBGvpd# show int + +To assign it an ip address (and 'up' the interface): + +DBGvpd# set int ip address tap-0 192.168.1.1/24 +DBGvpd# set int state tap-0 up + +To turn on packet tracing for the tap interface: +DBGvpd# trace add tapcli-rx 10 + +Now, to set up and try the other end from the unix prompt: +vagrant@vagrant-ubuntu-trusty-64:~$ sudo ip addr add 192.168.1.2/24 dev foobar +vagrant@vagrant-ubuntu-trusty-64:~$ ping -c 3 192.168.1.1 + +To look at the trace, back in the vpp CLI: +DBGvpd# show trace + +And to stop tracing: + +DBGvpd# clear trace + +Other fun things to look at: + +The vlib packet processing graph: +DBGvpd# show vlib graph + +which will produce output like: + + Name Next Previous +ip4-icmp-input error-punt [0] ip4-local + ip4-icmp-echo-request [1] + vpe-icmp4-oam [2] + +To read this, the first column (Name) is the name of the node. +The second column (Next) is the name of the children of that node. +The third column (Previous) is the name of the parents of this node. + +END diff --git a/build-root/deb/debian/vpp.postinst b/build-root/deb/debian/vpp.postinst new file mode 100644 index 00000000..78fcac22 --- /dev/null +++ b/build-root/deb/debian/vpp.postinst @@ -0,0 +1,8 @@ +#!/bin/sh -e + +# try to set the required values now. This may or may not work. +sysctl --system + +#DEBHELPER# + +exit 0 diff --git a/build-root/deb/debian/vpp.postrm b/build-root/deb/debian/vpp.postrm new file mode 100644 index 00000000..24b4842f --- /dev/null +++ b/build-root/deb/debian/vpp.postrm @@ -0,0 +1,21 @@ +#!/bin/sh -e + +removed= + +# Unbind user-mode PCI drivers +pci_dirs=`find /sys/bus/pci/drivers -type d -name igb_uio -o -name uio_pci_generic -o -name vfio-pci` +for d in $pci_dirs; do + for f in ${d}/*; do + [ -e "${f}/config" ] || continue + echo ${f##*/} > ${d}/unbind + basename `dirname ${f}` | xargs echo -n "Removing driver"; echo " for PCI ID" `basename ${f}` + removed=y + done +done +if [ -n "${removed}" ]; then + echo "There are changes in PCI drivers, rescaning" + echo 1 > /sys/bus/pci/rescan +else + echo "There weren't PCI devices binded" +fi + diff --git a/build-root/deb/debian/vpp.preinst b/build-root/deb/debian/vpp.preinst new file mode 100644 index 00000000..d33cacfc --- /dev/null +++ b/build-root/deb/debian/vpp.preinst @@ -0,0 +1,4 @@ +#!/bin/sh -e + +# Add the vpp group +groupadd -f -r vpp diff --git a/build-root/deb/debian/vpp.service b/build-root/deb/debian/vpp.service new file mode 100644 index 00000000..aa1651c4 --- /dev/null +++ b/build-root/deb/debian/vpp.service @@ -0,0 +1,14 @@ +[Unit] +Description=vector packet processing engine +After=network.target + +[Service] +Type=simple +ExecStartPre=-/bin/rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api +ExecStartPre=-/sbin/modprobe uio_pci_generic +ExecStart=/usr/bin/vpp -c /etc/vpp/startup.conf +ExecStopPost=/bin/rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/build-root/deb/debian/vpp.upstart b/build-root/deb/debian/vpp.upstart new file mode 100644 index 00000000..62e1d278 --- /dev/null +++ b/build-root/deb/debian/vpp.upstart @@ -0,0 +1,21 @@ +description "vector packet processing engine" +author "Cisco Systems, Inc <listname@cisco.com>" + +manual + +respawn + +pre-start script + rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api || true + # should be there via dkms, but if not, start anyway + modprobe uio_pci_generic || true +end script + + +script + exec vpp -c /etc/vpp/startup.conf +end script + +post-stop script + rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api || true +end script |