3 # Attempt to build debian packages for OVS
6 set -u # exit on undefined variable
9 ksrc=/lib/modules/$kvers/build
10 dist=`lsb_release -is | tr [A-Z] [a-z]`
11 release=`lsb_release -rs`
14 if [ "$arch" = "i686" ]; then arch=i386; fi
15 if [ "$arch" = "x86_64" ]; then arch=amd64; fi
18 ovs=openvswitch-$overs
20 ovsurl=http://openvswitch.org/releases/$ovstgz
22 install='sudo apt-get install -y'
24 echo "*** Installing debian/ubuntu build system"
25 $install build-essential devscripts ubuntu-dev-tools debhelper dh-make
26 $install diff patch cdbs quilt gnupg fakeroot lintian pbuilder piuparts
27 $install module-assistant
29 echo "*** Installing OVS dependencies"
30 $install pkg-config gcc make python-dev libssl-dev libtool
31 $install dkms ipsec-tools
33 echo "*** Installing headers for $kvers"
34 $install linux-headers-$kvers
36 echo "*** Retrieving OVS source"
41 echo "*** Patching OVS source"
42 # Not sure why this fails, but off it goes!
43 sed -i -e 's/dh_strip/# dh_strip/' debian/rules
44 if [ "$release" = "10.04" ]; then
45 # Lucid doesn't seem to have all the packages for ovsdbmonitor
46 echo "*** Patching debian/rules to remove dh_python2"
47 sed -i -e 's/dh_python2/dh_pysupport/' debian/rules
48 echo "*** Not building ovsdbmonitor since it's too hard on 10.04"
49 mv debian/ovsdbmonitor.install debian/ovsdbmonitor.install.backup
50 sed -i -e 's/ovsdbmonitor.install/ovsdbmonitor.install.backup/' Makefile.in
52 # Install a bag of hurt for ovsdbmonitor
53 $install python-pyside.qtcore pyqt4-dev-tools python-twisted python-twisted-bin \
54 python-twisted-core python-twisted-conch python-anyjson python-zope.interface
56 # init script was written to assume that commands complete
57 sed -i -e 's/^set -e/#set -e/' debian/openvswitch-controller.init
59 echo "*** Building OVS user packages"
60 opts=--with-linux=/lib/modules/`uname -r`/build
61 fakeroot make -f debian/rules DATAPATH_CONFIGURE_OPTS=$opts binary
63 echo "*** Building OVS datapath kernel module package"
64 # Still looking for the "right" way to do this...
65 sudo mkdir -p /usr/src/linux
66 ln -sf _debian/openvswitch.tar.gz .
67 sudo make -f debian/rules.modules KSRC=$ksrc KVERS=$kvers binary-modules
69 echo "*** Built the following packages:"
73 archive=ovs-$overs-core-$dist-$release-$arch$buildsuffix.tar
74 ovsbase='common pki switch brcompat controller datapath-dkms'
75 echo "*** Packing up $ovsbase .debs into:"
78 for component in $ovsbase; do
79 if echo $component | egrep 'dkms|pki'; then
80 # Architecture-independent packages
81 deb=(openvswitch-${component}_$overs*all.deb)
83 deb=(openvswitch-${component}_$overs*$arch.deb)
90 echo "*** Contents of archive $archive:"
93 echo "*** Done (hopefully)"