Merge "Use local debian spec & fix ovs post installation failure"
This commit is contained in:
commit
ac0ae54564
|
@ -4,24 +4,21 @@ set -eux
|
|||
|
||||
OVS_COMMIT=7d8eadce4df70f563a0c0123c612f6117c8ff864
|
||||
URL_OVS=https://github.com/openvswitch/ovs.git
|
||||
OVS_VER=${OVS_VER:-2.5.90}
|
||||
BUILD_HOME=$HOME/dpdk
|
||||
BUILD_DEST=${BUILD_DEST:-/deb}
|
||||
BUILD_DEB=${BUILD_DEB:-/deb}
|
||||
BUILD_SRC="$(dirname `readlink -f $0`)"
|
||||
BUILD_DEST=${BUILD_DEST:-/tmp/ovs-dpdk}
|
||||
|
||||
export DEB_BUILD_OPTIONS='parallel=8 nocheck'
|
||||
|
||||
sudo apt-get build-dep openvswitch -y
|
||||
sudo apt-get -y install devscripts dpkg-dev git wget
|
||||
|
||||
rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}
|
||||
cp `dirname $0`/rules ${BUILD_HOME}
|
||||
rm -rf ${BUILD_DEST}; mkdir -p ${BUILD_DEST}
|
||||
|
||||
cd ${BUILD_HOME}
|
||||
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc
|
||||
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0.orig.tar.gz
|
||||
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.debian.tar.xz
|
||||
dpkg-source -x dpdk_2.2.0-0ubuntu8.dsc
|
||||
cd ${BUILD_DEST}
|
||||
wget -c http://fast.dpdk.org/rel/dpdk-16.04.tar.xz
|
||||
xz -d dpdk-16.04.tar.xz; tar xvf dpdk-16.04.tar
|
||||
cd dpdk-16.04
|
||||
cp -r ${BUILD_SRC}/dpdk_16.04/debian .
|
||||
|
||||
# copy from debian/control
|
||||
sudo apt-get install -y debhelper \
|
||||
|
@ -38,26 +35,13 @@ sudo apt-get install -y debhelper \
|
|||
python-sphinx \
|
||||
texlive-fonts-recommended \
|
||||
texlive-latex-extra
|
||||
|
||||
cd dpdk-2.2.0; rm -rf debian/patches/; uupdate -v 16.04 ../dpdk-16.04.tar.xz
|
||||
cd ${BUILD_HOME}/dpdk-16.04
|
||||
cat << EOF > debian/changelog
|
||||
dpdk (16.04-1) unstable; urgency=low
|
||||
* DPDK 16.04
|
||||
-- DPDK team <dev@dpdk.org>
|
||||
EOF
|
||||
mv debian/rules debian/rules.orig
|
||||
cp ${BUILD_HOME}/rules debian/rules
|
||||
debian/rules build; fakeroot debian/rules binary
|
||||
cd ${BUILD_HOME}; sudo dpkg -i *.deb
|
||||
|
||||
cd ${BUILD_DEST}
|
||||
sudo dpkg -i *.deb
|
||||
apt-get download libxenstore3.0
|
||||
|
||||
cd ${BUILD_HOME}
|
||||
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0.orig.tar.gz
|
||||
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc
|
||||
wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.debian.tar.xz
|
||||
dpkg-source -x openvswitch-dpdk_2.4.0-0ubuntu1.dsc
|
||||
|
||||
sudo apt-get build-dep openvswitch -y
|
||||
# copy from debian/control
|
||||
sudo apt-get install -y autoconf \
|
||||
automake \
|
||||
|
@ -79,22 +63,15 @@ sudo apt-get install -y autoconf \
|
|||
python-six
|
||||
|
||||
git clone https://github.com/openvswitch/ovs.git
|
||||
cd ovs; git checkout ${OVS_COMMIT}
|
||||
cd ${BUILD_HOME}; tar czvf ovs.tar.gz ovs
|
||||
rm -rf openvswitch-dpdk-${OVS_VER}*
|
||||
cd openvswitch-dpdk-2.4.0; uupdate -v ${OVS_VER} ../ovs.tar.gz
|
||||
cd ../openvswitch-dpdk-${OVS_VER}
|
||||
#sed -i 's~DPDK_LIB_DIR=.*~DPDK_LIB_DIR="$with_dpdk/x86_64-linux-gnu/lib"~' acinclude.m4
|
||||
autoreconf --install
|
||||
rm -rf debian/patches/ .git;
|
||||
cat << EOF > debian/changelog
|
||||
openvswitch-dpdk (${OVS_VER}-1) unstable; urgency=low
|
||||
* New upstream version
|
||||
-- Open vSwitch team <dev@openvswitch.org>
|
||||
EOF
|
||||
cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git
|
||||
cd ${BUILD_DEST}; cp -r ovs ovs-dpdk
|
||||
|
||||
cd ovs-dpdk
|
||||
cp -r ${BUILD_SRC}/openvswitch-dpdk_2.5.90/debian .
|
||||
debian/rules build; fakeroot debian/rules binary
|
||||
|
||||
cd ${BUILD_HOME}/ovs
|
||||
cd ${BUILD_DEST}/ovs
|
||||
debian/rules build; fakeroot debian/rules binary
|
||||
|
||||
cp ${BUILD_HOME}/*.deb ${BUILD_DEST}
|
||||
cp -r ${BUILD_DEST}/*.deb ${BUILD_DEB}
|
||||
rm -rf ${BUILD_DEST}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
set -e
|
||||
|
||||
rm -rf /usr/sbin/ovs-vswitchd
|
||||
update-alternatives --install /usr/sbin/ovs-vswitchd ovs-vswitchd \
|
||||
/usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk 50
|
||||
|
||||
|
|
150
ovs_build/rules
150
ovs_build/rules
|
@ -1,150 +0,0 @@
|
|||
#!/usr/bin/make -f
|
||||
# See debhelper(7) (uncomment to enable)
|
||||
# output every command that modifies files on the build system.
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
include /usr/share/dpkg/default.mk
|
||||
|
||||
DEB_HOST_GNU_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
|
||||
|
||||
# see FEATURE AREAS in dpkg-buildflags(1)
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
|
||||
# build with debug symbols, dh_strip will create -dgbsyms packages by that
|
||||
export EXTRA_CFLAGS = -g
|
||||
|
||||
# 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
|
||||
|
||||
DPDK_CONFIG = "$(DEB_HOST_GNU_CPU)-native-linuxapp-gcc"
|
||||
DPDK_STATIC_DIR = "debian/build/static-root"
|
||||
DPDK_SHARED_DIR = "debian/build/shared-root"
|
||||
|
||||
clean:
|
||||
dh_testdir
|
||||
rm -rf debian/build debian/tmp
|
||||
dh_clean
|
||||
|
||||
build-config:
|
||||
dh_testdir
|
||||
$(MAKE) O=$(DPDK_STATIC_DIR) T=$(DPDK_CONFIG) config
|
||||
|
||||
build-indep: build-config
|
||||
dh_testdir
|
||||
$(MAKE) O=$(DPDK_STATIC_DIR) doc-api-html doc-guides-html
|
||||
|
||||
build-arch: build-config
|
||||
dh_testdir
|
||||
$(MAKE) O=$(DPDK_STATIC_DIR) build
|
||||
# Unfortunately the decision about having static or shared libraries is
|
||||
# made for the whole build, which then produces only .a or .so files
|
||||
# (but not both).
|
||||
# And the target layout for target selection has no field for the
|
||||
# type of library.
|
||||
# Right now I hack this by doing a second build which only differs in
|
||||
# the selection of shared libs.
|
||||
# Shared libs should be default, so the previous static build is only
|
||||
# used to get static libraries.
|
||||
cp -a $(DPDK_STATIC_DIR) $(DPDK_SHARED_DIR)
|
||||
sed -ri 's,(RTE_BUILD_SHARED_LIB=).*,\1y,' \
|
||||
$(DPDK_SHARED_DIR)/.config
|
||||
$(MAKE) O=$(DPDK_SHARED_DIR) build
|
||||
|
||||
build: build-arch build-indep
|
||||
|
||||
binary-indep: PACKAGE_NAME=dpdk-doc
|
||||
binary-indep: DOCDIR=usr/share/doc/dpdk
|
||||
binary-indep: export DH_OPTIONS=--indep
|
||||
binary-indep:
|
||||
dh_testroot
|
||||
dh_prep
|
||||
dh_testdir
|
||||
dh_installdirs
|
||||
dh_install
|
||||
dh_installdocs
|
||||
dh_installchangelogs
|
||||
dh_lintian
|
||||
# Package: dpdk-doc
|
||||
# All files based on the install-doc rule (includes examples)
|
||||
$(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
|
||||
DESTDIR=debian/dpdk-doc install-doc
|
||||
dh_link
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
dh_installdeb
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
|
||||
binary-arch: LIBDIR=usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
||||
binary-arch: export DH_OPTIONS=--arch
|
||||
binary-arch:
|
||||
dh_testroot
|
||||
dh_prep
|
||||
dh_testdir
|
||||
dh_installdirs
|
||||
dh_install
|
||||
dh_installdocs
|
||||
dh_installchangelogs
|
||||
dh_lintian
|
||||
dh_systemd_enable
|
||||
dh_installinit --no-start --no-restart-on-upgrade
|
||||
dh_systemd_start --no-start --no-restart-on-upgrade
|
||||
# Package: dpdk (runtime)
|
||||
$(MAKE) O=$(DPDK_STATIC_DIR) prefix=/usr \
|
||||
DESTDIR=debian/dpdk install-runtime
|
||||
$(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
|
||||
DESTDIR=debian/dpdk install-runtime
|
||||
cp debian/dpdk.interfaces debian/dpdk/etc/dpdk/interfaces
|
||||
rm debian/dpdk/usr/sbin/dpdk_nic_bind
|
||||
ln -s /usr/share/dpdk/tools/dpdk_nic_bind.py \
|
||||
debian/dpdk/sbin/dpdk_nic_bind
|
||||
# Package: libdpdk0 (bare runtime libs)
|
||||
mkdir -p debian/libdpdk0/$(LIBDIR)
|
||||
# NOTE so far upstream dpdk has not settled on really versioning the
|
||||
# combined lib. There are discussions ongoing and various alternative
|
||||
# approaches.
|
||||
# We have to wait until that is clarified upstream (in a follow on dpdk
|
||||
# version).
|
||||
# One likely solution will make us ship the non combined .so and a
|
||||
# linker script which replaces the combined lib.
|
||||
# To easen package management a few notes how this will change if that
|
||||
# happens:
|
||||
# NOTE: linker script - this becomes a nop (linker skript has no sover
|
||||
# on its own)
|
||||
rm debian/dpdk/usr/lib/libdpdk.so
|
||||
cp -a $(DPDK_SHARED_DIR)/lib/* debian/libdpdk0/$(LIBDIR)/
|
||||
# NOTE: linker script - insert basenames loop for all .so's
|
||||
# NOTE: linker script - we also will need multiple symbol files then
|
||||
# Package: dpdk-dev (build environment)
|
||||
$(MAKE) O=$(DPDK_SHARED_DIR) prefix=/usr \
|
||||
DESTDIR=debian/dpdk-dev install-sdk
|
||||
cp $(DPDK_SHARED_DIR)/.config debian/dpdk-dev/usr/share/dpdk/config
|
||||
# Package: libdpdk-dev (bare headers and static devel libs)
|
||||
mkdir -p debian/libdpdk-dev/usr/lib/
|
||||
# NOTE: linker script - insert basenames loop for all .a's
|
||||
#ln -s /$(LIBDIR)/libdpdk.so \
|
||||
# debian/libdpdk-dev/$(LIBDIR)/libdpdk.so.0
|
||||
cp -a $(DPDK_STATIC_DIR)/lib/* debian/libdpdk-dev/usr/lib/
|
||||
mv debian/dpdk-dev/usr/include/dpdk debian/libdpdk-dev/usr/include/
|
||||
# NOTE: linker script - package instead of removing all sublibs
|
||||
rm -rf debian/dpdk/usr/lib*
|
||||
dh_python2
|
||||
dh_perl
|
||||
dh_link
|
||||
dh_compress
|
||||
dh_fixperms
|
||||
dh_strip
|
||||
dh_makeshlibs
|
||||
dh_shlibdeps
|
||||
dh_installdeb
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
|
||||
binary: binary-arch binary-indep
|
Loading…
Reference in New Issue