Hi Simon, At the end, I did work on the packaging of openvswitch.
The issue about the multiple update-rc.d was, as I expected, due to your multiple calls to dh_installinit in debian/rules. I have attached a patch which removes most lintian warnings and errors. Please apply it, but before you upload, I would strongly suggest that you do some functional tests, to make sure that I didn't break anything (especially your init scripts, since I didn't understand the goal of your double dh_installinit calls). As I understand, you are also upstream for openvswitch. If that is the case, then best would be to have the man page fixes to be applied upstream, and the debian/patches folder to go away. Now, the only remaining lintian issues are: - no-upstream-changelog (this one can be ignore, IMO) - W: openvswitch-switch: manpage-has-bad-whatis-entry usr/share/man/man5/ovs-vswitchd.conf.db.5.gz (please fix it...) - I: openvswitch source: debian-watch-file-is-missing (it'd be great to have a watch file: where's your upstream tarball located?) I hope that helps, Cheers, Thomas Goirand (zigo)
diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/changelog openvswitch-1.4.0/debian/changelog --- openvswitch-1.4.0_2+nmu1/debian/changelog 2012-03-08 08:56:43.000000000 +0000 +++ openvswitch-1.4.0/debian/changelog 2012-03-08 18:25:15.000000000 +0000 @@ -1,3 +1,24 @@ +openvswitch (1.4.0-2+nmu2) unstable; urgency=low + + * NMU. + * Sets debhelper build-dependency to be (>= 8) + * Removed useless po-debconf build-dependency (there's no + debian/*.templates file in the package) + * Replaced build-dependency python (>= 2.6.6-3) by python-all (>= 2.6.6-3~) + * Added dh_python2 /usr/src call to fix python dependencies correctly in the + dkms package. + * Added missing ${python:Depends} dependency in the dkms package. + * Clean debian/rules target really cleans (including *.pyc files) + * Fixed long descriptions who were not really describing the package. + * Added long descriptions for the init scripts. + * Remove useless debian folder inside /usr/src/openvswitch-version for the + dkms package (it's useless there and adding some lintian warnings), removes + some license files in there too, and also the rhel folder, so that there's + no lintian warning anymore. + * Bumped standards-version (no change but the above). + + -- Thomas Goirand <z...@debian.org> Thu, 08 Mar 2012 17:34:53 +0000 + openvswitch (1.4.0-2+nmu1) unstable; urgency=low * Non maintainer upload. diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/compat openvswitch-1.4.0/debian/compat --- openvswitch-1.4.0_2+nmu1/debian/compat 2012-01-31 03:44:54.000000000 +0000 +++ openvswitch-1.4.0/debian/compat 2012-03-08 16:59:17.000000000 +0000 @@ -1 +1 @@ -7 +8 diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/control openvswitch-1.4.0/debian/control --- openvswitch-1.4.0_2+nmu1/debian/control 2012-03-08 08:56:36.000000000 +0000 +++ openvswitch-1.4.0/debian/control 2012-03-08 17:57:59.000000000 +0000 @@ -4,11 +4,11 @@ Maintainer: Open vSwitch developers <d...@openvswitch.org> Uploaders: Ben Pfaff <pfaff...@debian.org>, Simon Horman <ho...@debian.org> Build-Depends: - debhelper (>= 5), autoconf (>= 2.64), automake (>= 1.10) | automake1.10, - libssl-dev, pkg-config (>= 0.21), po-debconf, bzip2, openssl, - python (>= 2.6.6-3), procps, python-qt4, + debhelper (>= 8), autoconf (>= 2.64), automake (>= 1.10) | automake1.10, + libssl-dev, pkg-config (>= 0.21), bzip2, openssl, + python-all (>= 2.6.6-3~), procps, python-qt4, python-zopeinterface, python-twisted-conch -Standards-Version: 3.9.2 +Standards-Version: 3.9.3 Homepage: http://openvswitch.org/ Package: openvswitch-datapath-source @@ -16,17 +16,31 @@ Depends: module-assistant, bzip2, debhelper (>= 5.0.37), ${misc:Depends} Suggests: openvswitch-switch Description: Open vSwitch datapath module source - module-assistant version + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . 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 package provides further instructions. - . - Open vSwitch is a full-featured software-based Ethernet switch. Package: openvswitch-datapath-dkms Architecture: all -Depends: dkms (>= 1.95), make, libc6-dev, ${misc:Depends} +Depends: dkms (>= 1.95), make, libc6-dev, ${misc:Depends}, ${python:Depends} Description: Open vSwitch datapath module source - DKMS version + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . This package provides the Open vSwitch datapath module source code that is needed by openvswitch-switch. DKMS can built the kernel module from it. @@ -38,20 +52,32 @@ python (>= 2.7) | python-argparse Suggests: ethtool Description: Open vSwitch common components + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . openvswitch-common provides components required by both openvswitch-switch and openvswitch-controller. - . - Open vSwitch is a full-featured software-based Ethernet switch. Package: openvswitch-switch Architecture: linux-any Suggests: openvswitch-datapath-module Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, openvswitch-common (= ${binary:Version}), module-init-tools, procps, uuid-runtime Description: Open vSwitch switch implementations + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . openvswitch-switch provides the userspace components and utilities for the Open vSwitch kernel-based switch. - . - Open vSwitch is a full-featured software-based Ethernet switch. Package: openvswitch-ipsec Architecture: linux-any @@ -63,10 +89,16 @@ openvswitch-switch (= ${binary:Version}), python-openvswitch (= ${source:Version}) Description: Open vSwitch GRE-over-IPsec support + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . The ovs-monitor-ipsec script provides support for encrypting GRE tunnels with IPsec. - . - Open vSwitch is a full-featured software-based Ethernet switch. Package: openvswitch-pki Architecture: all @@ -74,11 +106,17 @@ ${misc:Depends}, openvswitch-common (>= ${source:Version}), openvswitch-common (<< ${source:Version}.1~) Description: Open vSwitch public key infrastructure dependency package + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . openvswitch-pki provides PKI (public key infrastructure) support for Open vSwitch switches and controllers, reducing the risk of man-in-the-middle attacks on the Open vSwitch network infrastructure. - . - Open vSwitch is a full-featured software-based Ethernet switch. Package: openvswitch-controller Architecture: linux-any @@ -86,10 +124,16 @@ ${shlibs:Depends}, openvswitch-common (= ${binary:Version}), openvswitch-pki (= ${source:Version}), ${misc:Depends} Description: Open vSwitch controller implementation + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . The Open vSwitch controller enables OpenFlow switches that connect to it to act as MAC-learning Ethernet switches. - . - Open vSwitch is a full-featured software-based Ethernet switch. Package: openvswitch-brcompat Architecture: linux-any @@ -97,6 +141,14 @@ ${shlibs:Depends}, openvswitch-switch (= ${binary:Version}), ${misc:Depends} Recommends: bridge-utils Description: Open vSwitch bridge compatibility support + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . openvswitch-brcompat provides a way for applications that use the Linux bridge to gradually migrate to Open vSwitch. Programs that ordinarily control the Linux bridge module, such as "brctl", instead @@ -104,8 +156,6 @@ . Once this package is installed, adding BRCOMPAT=yes in /etc/default/openvswitch-switch enables bridge compatibility. - . - Open vSwitch is a full-featured software-based Ethernet switch. Package: openvswitch-dbg Section: debug @@ -117,6 +167,14 @@ openvswitch-ipsec (= ${binary:Version}), openvswitch-switch (= ${binary:Version}) Description: Debug symbols for Open vSwitch packages + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . This package contains the debug symbols for all the other openvswitch-* packages. Install it to debug one of them or to examine a core dump produced by one of them. @@ -126,6 +184,14 @@ Section: python Depends: ${misc:Depends}, ${python:Depends} Description: Python bindings for Open vSwitch + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . This package contains the full Python bindings for Open vSwitch database. Package: ovsdbmonitor @@ -133,19 +199,31 @@ Section: utils Depends: ${python:Depends}, python-openvswitch, ${misc:Depends} Description: Open vSwitch graphical monitoring tool + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . This package is 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>"). - . - Open vSwitch is a full-featured software-based Ethernet switch. Package: openvswitch-test Architecture: all -Depends: ${misc:Depends}, python-twisted-web, python (>= 2.7) | python-argparse +Depends: ${misc:Depends}, ${python:Depends}, python-twisted-web, python (>= 2.7) | python-argparse Description: Open vSwitch test package + Open vSwitch is a production quality, multilayer, software-based, Ethernet + virtual switch. It is designed to enable massive network automation through + programmatic extension, while still supporting standard management interfaces + and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In + addition, it is designed to support distribution across multiple physical + servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus + 1000V. + . This package contains utilities that are useful to diagnose performance and connectivity issues in Open vSwitch setup. - . - Open vSwitch is a full-featured software-based Ethernet switch. diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/openvswitch-controller.init openvswitch-1.4.0/debian/openvswitch-controller.init --- openvswitch-1.4.0_2+nmu1/debian/openvswitch-controller.init 2012-01-31 03:44:54.000000000 +0000 +++ openvswitch-1.4.0/debian/openvswitch-controller.init 2012-03-08 17:26:51.000000000 +0000 @@ -27,6 +27,8 @@ # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Open vSwitch controller +# Description: The Open vSwitch controller enables OpenFlow switches that connect to it +# to act as MAC-learning Ethernet switches. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/openvswitch-ipsec.init openvswitch-1.4.0/debian/openvswitch-ipsec.init --- openvswitch-1.4.0_2+nmu1/debian/openvswitch-ipsec.init 2012-01-31 03:44:54.000000000 +0000 +++ openvswitch-1.4.0/debian/openvswitch-ipsec.init 2012-03-08 17:25:34.000000000 +0000 @@ -24,6 +24,8 @@ # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Open vSwitch GRE-over-IPsec daemon +# Description: The ovs-monitor-ipsec script provides support for encrypting GRE +# tunnels with IPsec. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/openvswitch-switch.init openvswitch-1.4.0/debian/openvswitch-switch.init --- openvswitch-1.4.0_2+nmu1/debian/openvswitch-switch.init 2012-01-31 03:44:54.000000000 +0000 +++ openvswitch-1.4.0/debian/openvswitch-switch.init 2012-03-08 17:24:41.000000000 +0000 @@ -21,6 +21,8 @@ # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Open vSwitch switch +# Description: openvswitch-switch provides the userspace components and utilities for +# the Open vSwitch kernel-based switch. ### END INIT INFO (test -x /usr/sbin/ovs-vswitchd && test -x /usr/sbin/ovsdb-server) || exit 0 diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/patches/0001-fixes-a-man-page-typo.patch openvswitch-1.4.0/debian/patches/0001-fixes-a-man-page-typo.patch --- openvswitch-1.4.0_2+nmu1/debian/patches/0001-fixes-a-man-page-typo.patch 1970-01-01 00:00:00.000000000 +0000 +++ openvswitch-1.4.0/debian/patches/0001-fixes-a-man-page-typo.patch 2012-03-08 17:38:16.000000000 +0000 @@ -0,0 +1,15 @@ +Description: Fixes openvswitch-switch: spelling-error-in-manpage usr/share/man/man1/ovsdb-server.1.gz noticable noticeable +Author: Thomas Goirand <z...@debian.org> +Forwarded: no + +--- openvswitch-1.4.0.orig/lib/stress-unixctl.man ++++ openvswitch-1.4.0/lib/stress-unixctl.man +@@ -58,7 +58,7 @@ The default period, used when stress opt + \fBstress/enable\fR) but this particular stress option has not been + specifically configured (with \fBstress/set\fR). It is \fBdisabled\fR + if the option is disabled by default. It is nonzero for options that +-can be left on at low levels without noticable impact to the end user. ++can be left on at low levels without noticeable impact to the end user. + .RE + . + .IP "\fBstress/set \fIoption\fR \fIperiod\fR [\fBrandom\fR|\fBperiodic\fR]" diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/patches/0002-fixed-hyphen-as-minus.patch openvswitch-1.4.0/debian/patches/0002-fixed-hyphen-as-minus.patch --- openvswitch-1.4.0_2+nmu1/debian/patches/0002-fixed-hyphen-as-minus.patch 1970-01-01 00:00:00.000000000 +0000 +++ openvswitch-1.4.0/debian/patches/0002-fixed-hyphen-as-minus.patch 2012-03-08 18:03:33.000000000 +0000 @@ -0,0 +1,24 @@ +Description: Escape some hyphen in man page +Author: Thomas Goirand <z...@debian.org> +Forwarded: no + +--- openvswitch-1.4.0.orig/vswitchd/ovs-vswitchd.conf.db.5 ++++ openvswitch-1.4.0/vswitchd/ovs-vswitchd.conf.db.5 +@@ -1526,7 +1526,7 @@ known. If the interface is successfully + (generally either in the range 1 to 65279, inclusive, or 65534, the + port number for the OpenFlow ``local port\(cq\(cq). If the interface + cannot be added then Open vSwitch sets this column +-to -1. ++to \-1. + .ST "System-Specific Details:" + .IP "\fBtype\fR: string" + The interface type, one of: +@@ -2897,7 +2897,7 @@ optional integer, in range 0 to 255 + optional integer, in range 0 to 255 + .TQ 3.00in + \fBactive_timeout\fR +-integer, at least -1 ++integer, at least \-1 + .TQ 3.00in + \fBadd_id_to_interface\fR + boolean diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/patches/series openvswitch-1.4.0/debian/patches/series --- openvswitch-1.4.0_2+nmu1/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ openvswitch-1.4.0/debian/patches/series 2012-03-08 18:04:43.000000000 +0000 @@ -0,0 +1,2 @@ +0001-fixes-a-man-page-typo.patch +0002-fixed-hyphen-as-minus.patch diff -u -r -N openvswitch-1.4.0_2+nmu1/debian/rules openvswitch-1.4.0/debian/rules --- openvswitch-1.4.0_2+nmu1/debian/rules 2012-01-31 03:44:54.000000000 +0000 +++ openvswitch-1.4.0/debian/rules 2012-03-08 18:23:54.000000000 +0000 @@ -72,6 +72,7 @@ rm -rf _debian [ ! -f Makefile ] || $(MAKE) distclean dh_clean + rm -f python/ovs/*.pyc python/ovs/db/*.pyc install: install-indep install-arch install-indep: build-indep @@ -97,6 +98,16 @@ # 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 + # We don't need the debian folder in there, just upstream sources... + rm -rf debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/debian + # We don't need the rhel stuff in there either + rm -rf debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/rhel + # And we should also clean useless license files, which are already + # descriped in our debian/copyright anyway. + rm -f debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/COPYING \ + debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/ovsdb/ovsdbmonitor/COPYING \ + debian/$(pdkms)/usr/src/$(PACKAGE)-$(DEB_UPSTREAM_VERSION)/xenserver/LICENSE + install-arch: build-arch dh_testdir dh_testroot @@ -117,7 +128,7 @@ dh_installexamples dh_installdebconf dh_installlogrotate - dh_installinit -R -Nopenvswitch-switch +# dh_installinit -R -Nopenvswitch-switch dh_installinit -R -popenvswitch-switch --error-handler=init_script_error dh_installcron dh_installman --language=C @@ -126,6 +137,8 @@ dh_compress dh_fixperms dh_python2 + dh_python2 /usr/src + dh_python2 /usr/bin dh_perl dh_makeshlibs dh_installdeb