[openvswitch] Initial import (#799171).

Chris Wright chrisw at fedoraproject.org
Tue Mar 6 21:56:15 UTC 2012


commit 2564f3b30e196f5da3be090eab17b57f825878b4
Author: Chris Wright <chrisw at sous-sol.org>
Date:   Tue Mar 6 13:51:38 2012 -0800

    Initial import (#799171).

 .gitignore                                         |    1 +
 ifdown-ovs                                         |   53 +++++
 ifup-ovs                                           |   63 ++++++
 openvswitch-configure-ovskmod-var-autoconfd.patch  |  122 ++++++++++++
 openvswitch-configure-ovskmod-var.patch            |   73 +++++++
 openvswitch.init                                   |   94 +++++++++
 openvswitch.logrotate                              |   20 ++
 openvswitch.service                                |   12 ++
 openvswitch.spec                                   |  210 ++++++++++++++++++++
 ...-move-to-its-own-data-directory-automaked.patch |   23 +++
 ovsdbmonitor-move-to-its-own-data-directory.patch  |   39 ++++
 ovsdbmonitor.desktop                               |    7 +
 sources                                            |    1 +
 13 files changed, 718 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..e6b7380 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/openvswitch-1.4.0.tar.gz
diff --git a/ifdown-ovs b/ifdown-ovs
new file mode 100644
index 0000000..3b5252d
--- /dev/null
+++ b/ifdown-ovs
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+# Copyright (c) 2011 Alexey I. Froloff.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+. /etc/init.d/functions
+
+cd /etc/sysconfig/network-scripts
+. ./network-functions
+
+[ -f ../network ] && . ../network
+
+CONFIG=${1}
+
+source_config
+
+. /etc/sysconfig/network
+
+OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${REAL_DEVICETYPE}"
+
+if [ ! -x ${OTHERSCRIPT} ]; then
+    OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-eth"
+fi
+
+case "$TYPE" in
+	OVSBridge)
+		${OTHERSCRIPT} ${CONFIG} $2
+		retval=$?
+		ovs-vsctl -- --if-exists del-br "$DEVICE"
+		;;
+	OVSPort|OVSIntPort|OVSBond)
+		${OTHERSCRIPT} ${CONFIG} $2
+		retval=$?
+		ovs-vsctl -- --if-exists del-port "$OVS_BRIDGE" "$DEVICE"
+		;;
+	*)
+		echo $"Invalid OVS interface type $TYPE"
+		exit 1
+		;;
+esac
+
+exit $retval
diff --git a/ifup-ovs b/ifup-ovs
new file mode 100644
index 0000000..7074c07
--- /dev/null
+++ b/ifup-ovs
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+# Copyright (c) 2011 Alexey I. Froloff.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+. /etc/init.d/functions
+
+cd /etc/sysconfig/network-scripts
+. ./network-functions
+
+[ -f ../network ] && . ../network
+
+CONFIG=${1}
+
+need_config ${CONFIG}
+
+source_config
+
+OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-${REAL_DEVICETYPE}"
+
+if [ ! -x ${OTHERSCRIPT} ]; then
+	OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-eth"
+fi
+
+case "$TYPE" in
+	OVSBridge)
+		ovs-vsctl -- --may-exist add-br "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
+		${OTHERSCRIPT} ${CONFIG} ${2}
+		;;
+	OVSPort)
+		/sbin/ifup "$OVS_BRIDGE"
+		${OTHERSCRIPT} ${CONFIG} ${2}
+		ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
+		;;
+	OVSIntPort)
+		/sbin/ifup "$OVS_BRIDGE"
+		ovs-vsctl -- --may-exist add-port "$OVS_BRIDGE" "$DEVICE" $OVS_OPTIONS -- set Interface "$DEVICE" type=internal ${OVS_EXTRA+-- $OVS_EXTRA}
+		${OTHERSCRIPT} ${CONFIG} ${2}
+		;;
+	OVSBond)
+		/sbin/ifup "$OVS_BRIDGE"
+		for _iface in $BOND_IFACES; do
+			/sbin/ifup ${_iface}
+		done
+		ovs-vsctl -- --fake-iface add-bond "$OVS_BRIDGE" "$DEVICE" ${BOND_IFACES} $OVS_OPTIONS ${OVS_EXTRA+-- $OVS_EXTRA}
+		${OTHERSCRIPT} ${CONFIG} ${2}
+		;;
+	*)
+		echo $"Invalid OVS interface type $TYPE"
+		exit 1
+		;;
+esac
diff --git a/openvswitch-configure-ovskmod-var-autoconfd.patch b/openvswitch-configure-ovskmod-var-autoconfd.patch
new file mode 100644
index 0000000..1f59232
--- /dev/null
+++ b/openvswitch-configure-ovskmod-var-autoconfd.patch
@@ -0,0 +1,122 @@
+This is the autoconf'd result of applying
+openvswitch-configure-ovskmod-var.patch.
+It updates configure and .in files directly,
+rather than their sources.
+
+diff -aru openvswitch-1.4.0.orig/configure openvswitch-1.4.0/configure
+--- openvswitch-1.4.0.orig/configure	2012-01-30 23:09:16.000000000 -0800
++++ openvswitch-1.4.0/configure	2012-02-29 21:23:09.397779430 -0800
+@@ -599,6 +607,7 @@
+ am__EXEEXT_TRUE
+ LTLIBOBJS
+ LIBOBJS
++OVSKMOD
+ LINUX_ENABLED_FALSE
+ LINUX_ENABLED_TRUE
+ KBUILD
+@@ -757,7 +766,8 @@
+ PKG_CONFIG_LIBDIR
+ SSL_CFLAGS
+ SSL_LIBS
+-KARCH'
++KARCH
++OVSKMOD'
+ 
+ 
+ # Initialize some variables set by options.
+@@ -1417,6 +1427,7 @@
+   SSL_CFLAGS  C compiler flags for SSL, overriding pkg-config
+   SSL_LIBS    linker flags for SSL, overriding pkg-config
+   KARCH       Kernel Architecture String
++  OVSKMOD     Open vSwitch kernel module name (default openvswitch_mod)
+ 
+ Use these variables to override the choices made by `configure' or to help
+ it to find libraries and programs with nonstandard names/locations.
+@@ -7882,6 +7893,12 @@
+ 
+ 
+ 
++
++if test "X$OVSKMOD" = "X"; then
++    OVSKMOD=openvswitch_mod
++fi
++
++
+ ac_config_files="$ac_config_files Makefile datapath/Makefile datapath/linux/Kbuild datapath/linux/Makefile datapath/linux/Makefile.main tests/atlocal"
+ 
+ 
+diff -aru openvswitch-1.4.0.orig/datapath/Makefile.in openvswitch-1.4.0/datapath/Makefile.in
+--- openvswitch-1.4.0.orig/datapath/Makefile.in	2012-01-30 23:09:16.000000000 -0800
++++ openvswitch-1.4.0/datapath/Makefile.in	2012-02-29 21:23:26.744028440 -0800
+@@ -128,6 +128,7 @@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ OBJEXT = @OBJEXT@
++OVSKMOD = @OVSKMOD@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+diff -aru openvswitch-1.4.0.orig/Makefile.in openvswitch-1.4.0/Makefile.in
+--- openvswitch-1.4.0.orig/Makefile.in	2012-01-30 23:09:16.000000000 -0800
++++ openvswitch-1.4.0/Makefile.in	2012-02-29 21:23:27.070033119 -0800
+@@ -875,6 +875,7 @@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ OBJEXT = @OBJEXT@
++OVSKMOD = @OVSKMOD@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+@@ -3634,6 +3635,7 @@
+                 -e 's,[@]RUNDIR[@],$(RUNDIR),g' \
+                 -e 's,[@]VERSION[@],$(VERSION),g' \
+                 -e 's,[@]BUILDNR[@],$(BUILDNR),g' \
++                -e 's,[@]OVSKMOD[@],$(OVSKMOD),g' \
+                 -e 's,[@]localstatedir[@],$(localstatedir),g' \
+                 -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
+                 -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
+diff -aru openvswitch-1.4.0.orig/utilities/ovs-ctl.in openvswitch-1.4.0/utilities/ovs-ctl.in
+--- openvswitch-1.4.0.orig/utilities/ovs-ctl.in	2012-01-30 23:08:18.000000000 -0800
++++ openvswitch-1.4.0/utilities/ovs-ctl.in	2012-02-29 21:22:49.206489585 -0800
+@@ -31,14 +31,14 @@
+ ## ----- ##
+ 
+ insert_openvswitch_mod_if_required () {
+-    # If openvswitch_mod is already loaded then we're done.
+-    test -e /sys/module/openvswitch_mod && return 0
++    # If @OVSKMOD@ is already loaded then we're done.
++    test -e /sys/module/@OVSKMOD@ && return 0
+ 
+-    # Load openvswitch_mod.  If that's successful then we're done.
+-    action "Inserting openvswitch module" modprobe openvswitch_mod && return 0
++    # Load @OVSKMOD at .  If that's successful then we're done.
++    action "Inserting openvswitch module" modprobe @OVSKMOD@ && return 0
+ 
+     # If the bridge module is loaded, then that might be blocking
+-    # openvswitch_mod.  Try to unload it, if there are no bridges.
++    # @OVSKMOD at .  Try to unload it, if there are no bridges.
+     test -e /sys/module/bridge || return 1
+     bridges=`echo /sys/class/net/*/bridge | sed 's,/sys/class/net/,,g;s,/bridge,,g'`
+     if test "$bridges" != "*"; then
+@@ -47,8 +47,8 @@
+     fi
+     action "removing bridge module" rmmod bridge || return 1
+ 
+-    # Try loading openvswitch_mod again.
+-    action "Inserting openvswitch module" modprobe openvswitch_mod
++    # Try loading @OVSKMOD@ again.
++    action "Inserting openvswitch module" modprobe @OVSKMOD@
+ }
+ 
+ insert_brcompat_mod_if_required () {
+@@ -285,8 +285,8 @@
+     if test -e /sys/module/brcompat_mod; then
+         action "Removing brcompat module" rmmod brcompat_mod
+     fi
+-    if test -e /sys/module/openvswitch_mod; then
+-        action "Removing openvswitch module" rmmod openvswitch_mod
++    if test -e /sys/module/@OVSKMOD@; then
++        action "Removing openvswitch module" rmmod @OVSKMOD@
+     fi
+ 
+     start
diff --git a/openvswitch-configure-ovskmod-var.patch b/openvswitch-configure-ovskmod-var.patch
new file mode 100644
index 0000000..45d6c5f
--- /dev/null
+++ b/openvswitch-configure-ovskmod-var.patch
@@ -0,0 +1,73 @@
+diff --git a/Makefile.am b/Makefile.am
+index 46de7fb..dc4a609 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -101,6 +101,7 @@ SUFFIXES += .in
+                 -e 's,[@]RUNDIR[@],$(RUNDIR),g' \
+                 -e 's,[@]VERSION[@],$(VERSION),g' \
+                 -e 's,[@]BUILDNR[@],$(BUILDNR),g' \
++                -e 's,[@]OVSKMOD[@],$(OVSKMOD),g' \
+                 -e 's,[@]localstatedir[@],$(localstatedir),g' \
+                 -e 's,[@]pkgdatadir[@],$(pkgdatadir),g' \
+                 -e 's,[@]sysconfdir[@],$(sysconfdir),g' \
+diff --git a/configure.ac b/configure.ac
+--- a/configure.ac
++++ b/configure.ac
+@@ -93,6 +94,12 @@ AC_ARG_VAR(KARCH, [Kernel Architecture String])
+ AC_SUBST(KARCH)
+ OVS_CHECK_LINUX
+ 
++AC_ARG_VAR(OVSKMOD, [Open vSwitch kernel module name (default openvswitch_mod)])
++if test "X$OVSKMOD" = "X"; then
++    OVSKMOD=openvswitch_mod
++fi
++AC_SUBST(OVSKMOD)
++
+ AC_CONFIG_FILES([Makefile 
+ datapath/Makefile 
+ datapath/linux/Kbuild
+diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in
+--- a/utilities/ovs-ctl.in
++++ b/utilities/ovs-ctl.in
+@@ -31,14 +31,14 @@ done
+ ## ----- ##
+ 
+ insert_openvswitch_mod_if_required () {
+-    # If openvswitch_mod is already loaded then we're done.
+-    test -e /sys/module/openvswitch_mod && return 0
++    # If @OVSKMOD@ is already loaded then we're done.
++    test -e /sys/module/@OVSKMOD@ && return 0
+ 
+-    # Load openvswitch_mod.  If that's successful then we're done.
+-    action "Inserting openvswitch module" modprobe openvswitch_mod && return 0
++    # Load @OVSKMOD at .  If that's successful then we're done.
++    action "Inserting openvswitch module" modprobe @OVSKMOD@ && return 0
+ 
+     # If the bridge module is loaded, then that might be blocking
+-    # openvswitch_mod.  Try to unload it, if there are no bridges.
++    # @OVSKMOD at .  Try to unload it, if there are no bridges.
+     test -e /sys/module/bridge || return 1
+     bridges=`echo /sys/class/net/*/bridge | sed 's,/sys/class/net/,,g;s,/bridge,,g'`
+     if test "$bridges" != "*"; then
+@@ -47,8 +47,8 @@ insert_openvswitch_mod_if_required () {
+     fi
+     action "removing bridge module" rmmod bridge || return 1
+ 
+-    # Try loading openvswitch_mod again.
+-    action "Inserting openvswitch module" modprobe openvswitch_mod
++    # Try loading @OVSKMOD@ again.
++    action "Inserting openvswitch module" modprobe @OVSKMOD@
+ }
+ 
+ insert_brcompat_mod_if_required () {
+@@ -285,8 +285,8 @@ force_reload_kmod () {
+     if test -e /sys/module/brcompat_mod; then
+         action "Removing brcompat module" rmmod brcompat_mod
+     fi
+-    if test -e /sys/module/openvswitch_mod; then
+-        action "Removing openvswitch module" rmmod openvswitch_mod
++    if test -e /sys/module/@OVSKMOD@; then
++        action "Removing openvswitch module" rmmod @OVSKMOD@
+     fi
+ 
+     start
diff --git a/openvswitch.init b/openvswitch.init
new file mode 100644
index 0000000..9f1506c
--- /dev/null
+++ b/openvswitch.init
@@ -0,0 +1,94 @@
+#!/bin/sh
+#
+# openvswitch
+#
+# chkconfig: 2345 09 91
+# description: Manage Open vSwitch kernel modules and user-space daemons
+
+# Copyright (C) 2009, 2010, 2011 Nicira Networks, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+### BEGIN INIT INFO
+# Provides:          openvswitch-switch
+# Required-Start:
+# Required-Stop:
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: Open vSwitch switch
+### END INIT INFO
+
+. /usr/share/openvswitch/scripts/ovs-lib || exit 1
+test -e /etc/sysconfig/openvswitch && . /etc/sysconfig/openvswitch
+
+start () {
+    set $ovs_ctl ${1-start}
+    set "$@" --system-id=random
+    if test X"$FORCE_COREFILES" != X; then
+	set "$@" --force-corefiles="$FORCE_COREFILES"
+    fi
+    if test X"$OVSDB_SERVER_PRIORITY" != X; then
+	set "$@" --ovsdb-server-priority="$OVSDB_SERVER_PRIORITY"
+    fi
+    if test X"$VSWITCHD_PRIORITY" != X; then
+	set "$@" --ovs-vswitchd-priority="$VSWITCHD_PRIORITY"
+    fi
+    if test X"$VSWITCHD_MLOCKALL" != X; then
+	set "$@" --mlockall="$VSWITCHD_MLOCKALL"
+    fi
+    if test X"$BRCOMPAT" = Xyes; then
+	set "$@" --brcompat
+    fi
+    "$@"
+
+    $ovs_ctl --protocol=gre enable-protocol
+
+    touch /var/lock/subsys/openvswitch
+}
+
+stop () {
+    $ovs_ctl stop
+    rm -f /var/lock/subsys/openvswitch
+}
+
+ovs_ctl=/usr/share/openvswitch/scripts/ovs-ctl
+case $1 in
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    restart)
+        stop
+        start
+        ;;
+    reload|force-reload)
+        # Nothing to do.
+        ;;
+    status)
+        $ovs_ctl status
+        ;;
+    version)
+        $ovs_ctl version
+        ;;
+    force-reload-kmod)
+        start force-reload-kmod
+        ;;
+    help)
+        printf "$0 [start|stop|restart|reload|force-reload|status|version|force-reload-kmod]\n"
+        ;;
+    *)
+        printf "Unknown command: $1\n"
+        exit 1
+        ;;
+esac
diff --git a/openvswitch.logrotate b/openvswitch.logrotate
new file mode 100644
index 0000000..1a08fa9
--- /dev/null
+++ b/openvswitch.logrotate
@@ -0,0 +1,20 @@
+# Copyright (C) 2009, 2010, 2011 Nicira Networks, Inc.
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved.  This file is offered as-is,
+# without warranty of any kind.
+
+/var/log/openvswitch/*.log {
+	sharedscripts
+	missingok
+	postrotate
+	# Tell Open vSwitch daemons to reopen their log files
+	if [ -e /var/run/openvswitch/ovs-vswitchd.pid ]; then
+	    /usr/bin/ovs-appctl -t ovs-vswitchd vlog/reopen
+	fi
+	if [ -e /var/run/openvswitch/ovsdb-server.pid ]; then
+	    /usr/bin/ovs-appctl -t ovsdb-server vlog/reopen
+	fi
+	endscript
+}
diff --git a/openvswitch.service b/openvswitch.service
new file mode 100644
index 0000000..f39d7e6
--- /dev/null
+++ b/openvswitch.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Open vSwitch
+After=syslog.target network.target
+
+[Service]
+Type=oneshot
+ExecStart=/usr/share/openvswitch/scripts/openvswitch.init start
+ExecStop=/usr/share/openvswitch/scripts/openvswitch.init stop
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
diff --git a/openvswitch.spec b/openvswitch.spec
new file mode 100644
index 0000000..74a8c58
--- /dev/null
+++ b/openvswitch.spec
@@ -0,0 +1,210 @@
+Name:           openvswitch
+Version:        1.4.0
+Release:        2%{?dist}
+Summary:        Open vSwitch daemon/database/utilities
+
+# Nearly all of openvswitch is ASL 2.0.  The bugtool is LGPLv2+, and the
+# lib/sflow*.[ch] files are SISSL
+# datapath/ is GPLv2 (although not built into any of the binary packages)
+# python/compat is Python (although not built into any of the binary packages)
+License:        ASL 2.0 and LGPLv2+ and SISSL
+URL:            http://openvswitch.org
+Source0:        http://openvswitch.org/releases/%{name}-%{version}.tar.gz
+Source1:        openvswitch.service
+Source2:        openvswitch.init
+Source3:        openvswitch.logrotate
+Source4:        ifup-ovs
+Source5:        ifdown-ovs
+Source6:        ovsdbmonitor.desktop
+Source7:        openvswitch-configure-ovskmod-var.patch
+Source8:        ovsdbmonitor-move-to-its-own-data-directory.patch
+# make the kmod name configurable since Fedora kernel ships openvswitch module
+# Source7 is not applied, it's used to generate patch0
+Patch0:         openvswitch-configure-ovskmod-var-autoconfd.patch
+# mv ovsdbmonitordir. Source8 (accepted upstream) is source for patch1
+Patch1:         ovsdbmonitor-move-to-its-own-data-directory-automaked.patch
+
+BuildRequires:  systemd-units openssl-devel
+BuildRequires:  python python-twisted-core python-twisted-conch python-zope-interface PyQt4
+BuildRequires:  desktop-file-utils
+BuildRequires:  groff graphviz
+
+Requires:       openssl iproute module-init-tools
+
+Requires(post):  systemd-units
+Requires(preun): systemd-units
+
+%description
+Open vSwitch provides standard network bridging functions and
+support for the OpenFlow protocol for remote per-flow control of
+traffic.
+
+%package -n python-openvswitch
+Summary:        Open vSwitch python bindings
+License:        ASL 2.0
+BuildArch:      noarch
+Requires:       python
+
+%description -n python-openvswitch
+Python bindings for the Open vSwitch database
+
+%package -n ovsdbmonitor
+Summary:        Open vSwitch graphical monitoring tool
+License:        ASL 2.0
+BuildArch:      noarch
+Requires:       python-openvswitch = %{version}-%{release}
+Requires:       python python-twisted-core python-twisted-conch python-zope-interface PyQt4
+
+%description -n ovsdbmonitor
+A GUI tool for monitoring and troubleshooting local or remote Open
+vSwitch installations.  It presents GUI tables that graphically represent
+an Open vSwitch kernel flow table (similar to "ovs-dpctl dump-flows")
+and Open vSwitch database contents (similar to "ovs-vsctl list <table>").
+
+%package test
+Summary:        Open vSwitch testing utilities
+License:        ASL 2.0
+BuildArch:      noarch
+Requires:       python-openvswitch = %{version}-%{release}
+Requires:       python python-twisted-core python-twisted-web
+
+%description test
+Utilities that are useful to diagnose performance and connectivity
+issues in Open vSwitch setup.
+
+%prep
+%setup -q
+%patch0 -p1 -b .ovskmod
+%patch1 -p1 -b .ovsdbmonitordir
+
+
+%build
+%configure --enable-ssl --with-pkidir=%{_sharedstatedir}/openvswitch/pki OVSKMOD=openvswitch
+make %{?_smp_mflags}
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
+
+install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch
+
+src=rhel/usr_share_openvswitch_scripts_sysconfig.template
+dst=$RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/openvswitch
+install -p -D -m 0644 $src $dst
+
+install -p -D -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/openvswitch.service
+install -p -D -m 0755 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init
+install -p -D -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/openvswitch
+
+install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/network-scripts/
+install -p -m 0755 %{SOURCE4} %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/network-scripts/
+
+install -d -m 0755 $RPM_BUILD_ROOT/%{_sharedstatedir}/openvswitch
+
+install -d -m 0755 $RPM_BUILD_ROOT%{python_sitelib}
+mv $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/* $RPM_BUILD_ROOT%{python_sitelib}
+rmdir $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/
+
+# Get rid of stuff we don't want to make RPM happy.
+rm -f \
+    $RPM_BUILD_ROOT%{_bindir}/ovs-controller \
+    $RPM_BUILD_ROOT%{_mandir}/man8/ovs-controller.8 \
+    $RPM_BUILD_ROOT%{_sbindir}/ovs-vlan-bug-workaround \
+    $RPM_BUILD_ROOT%{_mandir}/man8/ovs-vlan-bug-workaround.8 \
+    $RPM_BUILD_ROOT%{_sbindir}/ovs-brcompatd \
+    $RPM_BUILD_ROOT%{_mandir}/man8/ovs-brcompatd.8
+
+desktop-file-install --dir=$RPM_BUILD_ROOT%{_datadir}/applications %{SOURCE6}
+
+%post
+if [ $1 -eq 1 ] ; then
+    # Initial installation
+    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+fi
+
+%preun
+if [ "$1" = "0" ]; then
+    # Package removal, not upgrade
+    /bin/systemctl --no-reload disable openvswitch.service > /dev/null 2>&1 || :
+    /bin/systemctl stop openvswitch.service > /dev/null 2>&1 || :
+fi
+
+%postun
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+    # Package upgrade, not uninstall
+    /bin/systemctl try-restart openvswitch.service >/dev/null 2>&1 || :
+fi
+
+
+%files
+%{_sysconfdir}/openvswitch/
+%config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch
+%config(noreplace) %{_sysconfdir}/sysconfig/openvswitch
+%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
+%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
+%{_unitdir}/openvswitch.service
+%{_bindir}/ovs-appctl
+%{_bindir}/ovs-benchmark
+%{_bindir}/ovs-dpctl
+%{_bindir}/ovs-ofctl
+%{_bindir}/ovs-parse-leaks
+%{_bindir}/ovs-pcap
+%{_bindir}/ovs-pki
+%{_bindir}/ovs-tcpundump
+%{_bindir}/ovs-vsctl
+%{_bindir}/ovsdb-client
+%{_bindir}/ovsdb-tool
+# ovs-bugtool is LGPLv2+
+%{_sbindir}/ovs-bugtool
+%{_sbindir}/ovs-vswitchd
+%{_sbindir}/ovsdb-server
+%{_mandir}/man1/ovs-benchmark.1.gz
+%{_mandir}/man1/ovs-pcap.1.gz
+%{_mandir}/man1/ovs-tcpundump.1.gz
+%{_mandir}/man1/ovsdb-client.1.gz
+%{_mandir}/man1/ovsdb-server.1.gz
+%{_mandir}/man1/ovsdb-tool.1.gz
+%{_mandir}/man5/ovs-vswitchd.conf.db.5.gz
+%{_mandir}/man8/ovs-appctl.8.gz
+%{_mandir}/man8/ovs-bugtool.8.gz
+%{_mandir}/man8/ovs-ctl.8.gz
+%{_mandir}/man8/ovs-dpctl.8.gz
+%{_mandir}/man8/ovs-ofctl.8.gz
+%{_mandir}/man8/ovs-parse-leaks.8.gz
+%{_mandir}/man8/ovs-pki.8.gz
+%{_mandir}/man8/ovs-vsctl.8.gz
+%{_mandir}/man8/ovs-vswitchd.8.gz
+# /usr/share/openvswitch/bugtool-plugins and
+# /usr/share/openvswitch/scripts/ovs-bugtool* are LGPLv2+
+%{_datadir}/openvswitch/
+%{_sharedstatedir}/openvswitch
+# see COPYING for full licensing details
+%doc COPYING DESIGN INSTALL.SSL NOTICE README WHY-OVS rhel/README.RHEL
+
+%files -n python-openvswitch
+%{python_sitelib}/ovs
+%doc COPYING
+
+%files -n ovsdbmonitor
+%{_bindir}/ovsdbmonitor
+%{_mandir}/man1/ovsdbmonitor.1.gz
+%{_datadir}/ovsdbmonitor
+%{_datadir}/applications/ovsdbmonitor.desktop
+%doc ovsdb/ovsdbmonitor/COPYING
+
+%files test
+%{_bindir}/ovs-test
+%{_bindir}/ovs-vlan-test
+%{_mandir}/man8/ovs-test.8.gz
+%{_mandir}/man8/ovs-vlan-test.8.gz
+%{python_sitelib}/ovstest
+
+
+%changelog
+* Fri Mar  1 2012 Chris Wright <chrisw at redhat.com> - 1.4.0-2
+- Update License comment, use consitent macros as per review comments bz799171
+
+* Wed Feb 29 2012 Chris Wright <chrisw at redhat.com> - 1.4.0-1
+- Initial package for Fedora
diff --git a/ovsdbmonitor-move-to-its-own-data-directory-automaked.patch b/ovsdbmonitor-move-to-its-own-data-directory-automaked.patch
new file mode 100644
index 0000000..9f4da1b
--- /dev/null
+++ b/ovsdbmonitor-move-to-its-own-data-directory-automaked.patch
@@ -0,0 +1,23 @@
+This is the automake'd version of the patch
+ovsdbmonitor-move-to-its-own-data-directory.patch.  It only updates
+Makefile.in rather than ovsdb/ovsdbmonitor/automake.mk.
+
+diff -aur openvswitch-1.4.0.orig/debian/ovsdbmonitor.install openvswitch-1.4.0/debian/ovsdbmonitor.install
+--- openvswitch-1.4.0.orig/debian/ovsdbmonitor.install	2012-01-30 19:44:54.000000000 -0800
++++ openvswitch-1.4.0/debian/ovsdbmonitor.install	2012-03-01 15:29:30.661090604 -0800
+@@ -1,2 +1,2 @@
+ usr/bin/ovsdbmonitor
+-usr/share/openvswitch/ovsdbmonitor
++usr/share/ovsdbmonitor
+diff -aur openvswitch-1.4.0.orig/Makefile.in openvswitch-1.4.0/Makefile.in
+--- openvswitch-1.4.0.orig/Makefile.in	2012-01-30 23:09:16.000000000 -0800
++++ openvswitch-1.4.0/Makefile.in	2012-03-01 15:29:35.927167987 -0800
+@@ -1589,7 +1589,7 @@
+ 	ovsdb/ovsdbmonitor/Ui_MainWindow.py \
+ 	ovsdb/ovsdbmonitor/qt4reactor.py
+ 
+-ovsdbmonitordir = ${pkgdatadir}/ovsdbmonitor
++ovsdbmonitordir = ${datadir}/ovsdbmonitor
+ @BUILD_OVSDBMONITOR_TRUE at ovsdbmonitor_DATA = $(ovsdbmonitor_pyfiles)
+ update_spec = \
+   ($(ro_shell) && sed -e 's,[@]VERSION[@],$(VERSION),g') \
diff --git a/ovsdbmonitor-move-to-its-own-data-directory.patch b/ovsdbmonitor-move-to-its-own-data-directory.patch
new file mode 100644
index 0000000..f1d67e8
--- /dev/null
+++ b/ovsdbmonitor-move-to-its-own-data-directory.patch
@@ -0,0 +1,39 @@
+From 748dca871d1f8a06d33a1002e1dfabb74b16c9b6 Mon Sep 17 00:00:00 2001
+From: Chris Wright <chrisw at sous-sol.org>
+Date: Thu, 1 Mar 2012 15:25:14 -0800
+Subject: [PATCH] ovsdbmonitor: move to its own data directory
+
+It doesn't have dependencies on any packages that would install into
+pkgdatadir, and for Fedora it makes directory ownership work better.
+So move ovsdbmonitor python internals to its own data directory.
+
+Signed-off-by: Chris Wright <chrisw at sous-sol.org>
+Signed-off-by: Ben Pfaff <blp at nicira.com>
+---
+ debian/ovsdbmonitor.install    |    2 +-
+ ovsdb/ovsdbmonitor/automake.mk |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/debian/ovsdbmonitor.install b/debian/ovsdbmonitor.install
+index 4f19ecb..0572be4 100644
+--- a/debian/ovsdbmonitor.install
++++ b/debian/ovsdbmonitor.install
+@@ -1,2 +1,2 @@
+ usr/bin/ovsdbmonitor
+-usr/share/openvswitch/ovsdbmonitor
++usr/share/ovsdbmonitor
+diff --git a/ovsdb/ovsdbmonitor/automake.mk b/ovsdb/ovsdbmonitor/automake.mk
+index 59d2e2c..ec63cc7 100644
+--- a/ovsdb/ovsdbmonitor/automake.mk
++++ b/ovsdb/ovsdbmonitor/automake.mk
+@@ -28,7 +28,7 @@ EXTRA_DIST += \
+ 	ovsdb/ovsdbmonitor/ovsdbmonitor.in
+ MAN_ROOTS += ovsdb/ovsdbmonitor/ovsdbmonitor.1
+ 
+-ovsdbmonitordir = ${pkgdatadir}/ovsdbmonitor
++ovsdbmonitordir = ${datadir}/ovsdbmonitor
+ if BUILD_OVSDBMONITOR
+ noinst_SCRIPTS += ovsdb/ovsdbmonitor/ovsdbmonitor
+ ovsdbmonitor_DATA = $(ovsdbmonitor_pyfiles)
+-- 
+1.7.7.4
diff --git a/ovsdbmonitor.desktop b/ovsdbmonitor.desktop
new file mode 100644
index 0000000..b0f8253
--- /dev/null
+++ b/ovsdbmonitor.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=Open vSwitch DB Monitor
+Comment=Monitor and troubleshoot local or remote Open vSwitch instances
+Exec=ovsdbmonitor
+Terminal=false
+Type=Application
+Categories=System;Monitor;
diff --git a/sources b/sources
index e69de29..791754a 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+3847c60af329bfe81ff7220b9f489fa5  openvswitch-1.4.0.tar.gz


More information about the scm-commits mailing list