[ovs-dev] [PATCH] debian: Apply Ubuntu patch to add DKMS support.
Ben Pfaff
blp at nicira.com
Tue Aug 23 15:37:17 PDT 2011
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 at 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 at ubuntu.com>
CC: Dave Walker <DaveWalker at ubuntu.com>
---
AUTHORS | 1 +
debian/.gitignore | 1 +
debian/automake.mk | 3 +++
debian/control | 10 +++++++++-
debian/dkms.conf.in | 9 +++++++++
debian/openvswitch-datapath-dkms.postinst | 21 +++++++++++++++++++++
debian/openvswitch-datapath-dkms.prerm | 15 +++++++++++++++
debian/rules | 15 +++++++++++++++
8 files changed, 74 insertions(+), 1 deletions(-)
create mode 100644 debian/dkms.conf.in
create mode 100644 debian/openvswitch-datapath-dkms.postinst
create mode 100644 debian/openvswitch-datapath-dkms.prerm
diff --git a/AUTHORS b/AUTHORS
index f620697..44311ff 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -7,6 +7,7 @@ Andy Southgate andy.southgate at citrix.com
Ben Pfaff blp at nicira.com
Bryan Phillippe bp at toroki.com
Casey Barker crbarker at google.com
+Chuck Short zulcss at ubuntu.com
Dan Wendlandt dan at nicira.com
David Erickson derickso at stanford.edu
Ethan Jackson ethan at nicira.com
diff --git a/debian/.gitignore b/debian/.gitignore
index 7b8dffe..7e6d656 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 7e166dd..d289830 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 1978b73..e5ac633 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 0000000..56c6398
--- /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 0000000..4903119
--- /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 0000000..5c8ad31
--- /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 37d321b..fb781e6 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
--
1.7.4.4
More information about the dev
mailing list