summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorChuck Short <zulcss@ubuntu.com>2011-08-23 15:37:11 -0700
committerBen Pfaff <blp@nicira.com>2011-08-25 10:24:59 -0700
commit49c57a8fef46461da911802e8bf82329924ea329 (patch)
tree815145dc59efc2564f6ad95a5384b47daf5ad892 /debian
parent0027492deeae5ed1c51458ae1970064be2089df9 (diff)
downloadopenvswitch-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/.gitignore1
-rw-r--r--debian/automake.mk3
-rw-r--r--debian/control10
-rw-r--r--debian/dkms.conf.in9
-rw-r--r--debian/openvswitch-datapath-dkms.postinst21
-rw-r--r--debian/openvswitch-datapath-dkms.prerm15
-rwxr-xr-xdebian/rules15
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