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

Reply via email to