diff options
| author | Chuck Short <zulcss@ubuntu.com> | 2011-08-23 15:37:11 -0700 |
|---|---|---|
| committer | Ben Pfaff <blp@nicira.com> | 2011-08-25 10:24:59 -0700 |
| commit | 49c57a8fef46461da911802e8bf82329924ea329 (patch) | |
| tree | 815145dc59efc2564f6ad95a5384b47daf5ad892 /debian | |
| parent | 0027492deeae5ed1c51458ae1970064be2089df9 (diff) | |
| download | openvswitch-49c57a8fef46461da911802e8bf82329924ea329.tar.gz | |
debian: Apply Ubuntu patch to add DKMS support.
I tested that installing openvswitch-datapath-dkms worked OK on my own
Debian machine.
The bulk of this patch is taken from downstream Ubuntu DKMS support written
by Chuck Short <zulcss@ubuntu.com>, version 1.2.0-1ubuntu1. I made the
following changes:
* Update debian/.gitignore.
* Update debian/automake.mk.
* Correct description in debian/control (it was a cut-and-paste from
the openvswitch-datapath-source description without editing).
* Fix up for --with-l26 to --with-linux and datapath/linux-2.6 to
datapath/linux transitions.
CC: Chuck Short <zulcss@ubuntu.com>
CC: Dave Walker <DaveWalker@ubuntu.com>
Acked-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'debian')
| -rw-r--r-- | debian/.gitignore | 1 | ||||
| -rw-r--r-- | debian/automake.mk | 3 | ||||
| -rw-r--r-- | debian/control | 10 | ||||
| -rw-r--r-- | debian/dkms.conf.in | 9 | ||||
| -rw-r--r-- | debian/openvswitch-datapath-dkms.postinst | 21 | ||||
| -rw-r--r-- | debian/openvswitch-datapath-dkms.prerm | 15 | ||||
| -rwxr-xr-x | debian/rules | 15 |
7 files changed, 73 insertions, 1 deletions
diff --git a/debian/.gitignore b/debian/.gitignore index 7b8dffea3..7e6d65626 100644 --- a/debian/.gitignore +++ b/debian/.gitignore @@ -11,6 +11,7 @@ /openvswitch-common.copyright /openvswitch-controller /openvswitch-datapath-source +/openvswitch-datapath-dkms /openvswitch-dbg /openvswitch-ipsec /openvswitch-pki diff --git a/debian/automake.mk b/debian/automake.mk index 7e166ddca..d2898301a 100644 --- a/debian/automake.mk +++ b/debian/automake.mk @@ -5,6 +5,7 @@ EXTRA_DIST += \ debian/control.modules.in \ debian/copyright \ debian/copyright.in \ + debian/dkms.conf.in \ debian/dirs \ debian/openvswitch-brcompat.install \ debian/openvswitch-brcompat.manpages \ @@ -20,6 +21,8 @@ EXTRA_DIST += \ debian/openvswitch-controller.manpages \ debian/openvswitch-controller.postinst \ debian/openvswitch-datapath-module-_KVERS_.postinst.modules.in \ + debian/openvswitch-datapath-dkms.postinst \ + debian/openvswitch-datapath-dkms.prerm \ debian/openvswitch-datapath-source.README.Debian \ debian/openvswitch-datapath-source.copyright \ debian/openvswitch-datapath-source.dirs \ diff --git a/debian/control b/debian/control index 1d09d94bd..8b3e7bf9f 100644 --- a/debian/control +++ b/debian/control @@ -15,7 +15,7 @@ Package: openvswitch-datapath-source Architecture: all Depends: module-assistant, bzip2, debhelper (>= 5.0.37), ${misc:Depends} Suggests: openvswitch-switch -Description: Source code for Open vSwitch datapath Linux module +Description: Open vSwitch datapath module source - module-assistant version This package provides the Open vSwitch datapath module source code that is needed by openvswitch-switch. The kernel module can be built from it using module-assistant or make-kpkg. README.Debian in this @@ -23,6 +23,14 @@ Description: Source code for Open vSwitch datapath Linux module . Open vSwitch is a full-featured software-based Ethernet switch. +Package: openvswitch-datapath-dkms +Architecture: all +Depends: dkms (>= 1.95), make, ${misc:Depends} +Description: Open vSwitch datapath module source - DKMS version + This package provides the Open vSwitch datapath module source code + that is needed by openvswitch-switch. DKMS can built the kernel + module from it. + Package: openvswitch-common Architecture: linux-any Depends: ${shlibs:Depends}, openssl, ${misc:Depends}, python diff --git a/debian/dkms.conf.in b/debian/dkms.conf.in new file mode 100644 index 000000000..56c6398f5 --- /dev/null +++ b/debian/dkms.conf.in @@ -0,0 +1,9 @@ +PACKAGE_NAME="openvswitch" +PACKAGE_VERSION="__VERSION__" +MAKE="./configure --with-linux=/usr/src/linux-headers-`uname -r` ; make -C datapath/linux" +BUILT_MODULE_NAME[0]=openvswitch_mod +BUILT_MODULE_NAME[1]=brcompat_mod +BUILT_MODULE_LOCATION[0]=datapath/linux/ +BUILT_MODULE_LOCATION[1]=datapath/linux/ +DEST_MODULE_LOCATION[0]=/kernel/drivers/net/openvswitch/ +DEST_MODULE_LOCATION[1]=/kernel/drivers/net/openvswitch/ diff --git a/debian/openvswitch-datapath-dkms.postinst b/debian/openvswitch-datapath-dkms.postinst new file mode 100644 index 000000000..490311956 --- /dev/null +++ b/debian/openvswitch-datapath-dkms.postinst @@ -0,0 +1,21 @@ +#!/bin/sh + +set -e + +package=openvswitch-datapath-dkms +name=openvswitch + +version=`dpkg-query -W -f='${Version}' "$package" \ + |rev|cut -d- -f2-|rev|cut -d':' -f2|tr -d "\n"` + +isadded=`dkms status -m "$name" -v "$version"` + +if [ "x${isadded}" = "x" ] ; then + dkms add -m "$name" -v "$version" +fi + +if [ "$1" = 'configure' ] ; then + dkms build -m "$name" -v "$version" && dkms install -m "$name" -v "$version" || true +fi + +#DEBHELPER# diff --git a/debian/openvswitch-datapath-dkms.prerm b/debian/openvswitch-datapath-dkms.prerm new file mode 100644 index 000000000..5c8ad3120 --- /dev/null +++ b/debian/openvswitch-datapath-dkms.prerm @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +package=openvswitch-datapath-dkms +name=openvswitch + +version=`dpkg-query -W -f='${Version}' "$package" \ + |rev|cut -d- -f2-|rev|cut -d':' -f2|tr -d "\n"` + +dkms remove -m "$name" -v "$version" --all || true + +#DEBHELPER# + +exit 0 diff --git a/debian/rules b/debian/rules index 37d321b7d..fb781e6c3 100755 --- a/debian/rules +++ b/debian/rules @@ -13,6 +13,11 @@ # Official build number. Leave set to 0 if not an official build. BUILD_NUMBER = 0 +PACKAGE=openvswitch +pdkms=openvswitch-datapath-dkms +DEB_UPSTREAM_VERSION=$(shell dpkg-parsechangelog | sed -rne 's,^Version: ([^-]+).*,\1,p') +srcfiles := $(filter-out debian, $(wildcard * .[^.]*)) + ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) PARALLEL = -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) else @@ -82,6 +87,16 @@ install-indep: build-indep chmod 755 debian/openvswitch-datapath-source/usr/src/modules/openvswitch-datapath/debian/rules cd debian/openvswitch-datapath-source/usr/src && tar -c modules | bzip2 -9 > openvswitch-datapath.tar.bz2 && rm -rf modules + #dkms stuff + # setup the dirs + dh_installdirs -p$(pdkms) usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION) + + # copy the source + cd debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION) && tar xvzf $(CURDIR)/_debian/openvswitch.tar.gz && mv openvswitch/* . && rmdir openvswitch + + # Prepare dkms.conf from the dkms.conf.in template + sed "s/__VERSION__/$(DEB_UPSTREAM_VERSION)/g" debian/dkms.conf.in > debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/dkms.conf + install-arch: build-arch dh_testdir dh_testroot |
