Hi Zoltánm On Thu, Mar 24, 2016 at 08:28:53AM +0000, Zoltán Balogh wrote: > Hi, > > The Debian Policy Manual > (https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version) > says that the upstream_version may contain only alphanumerics and the > characters . + - : ~ (full stop, plus, hyphen, colon, tilde) and should start > with a digit. > > Currently, the upstream_version is defined in the debian/rules file: > > DEB_UPSTREAM_VERSION=$(shell dpkg-parsechangelog | sed -rne 's,^Version: > ([0-9]:)*([^-]+).*,\2,p') > > The version number is taken from the dpkg-parsechangelog printout then the > first part of the version number which does not contain hyphen is filtered > out with sed. However the Debian Policy Manual says that hyphen is allowed in > the upstream_version. > > This is not a problem with current vanilla OVS debian version. But, if a > postfix string including a hyphen is added to the upstream_version then > installation of datapath-dkms package will fail. > > I think the following patch solves this problem. > > Signed-off-by: Zoltán Balogh <zoltan.bal...@ericsson.com>
I wonder if the version manipulation could be expressed using sed, as the code existing code does, rather than awk, sed, expr and shell. Perhaps something like this: sed -rne 's,^Version: ([0-9]+:)?([0-9][a-zA-Z0-9.+:~-]*)(-[a-zA-Z0-9*.~]*),\2,p' Which I tested as follows: Input: Version: 2.4.90-1 Output: 2.4.90 Input: Version: 1:2.4.90-1 Output: 2.4.90 Input: Version: 1:3:2.4.90-1 Output: 3:2.4.90 Input: Version: 2.4.90-xyz-1 Output: 2.4.90-xyz Input: Version: 1:2.4.90-xyz-1 Output: 2.4.90-xyz Input: Version: 1:3:2.4.90-xyz-1 Output: 3:2.4.90-xyz N.B: Does not work without debian_version present Input: Version: 2.4.90 Output: > > --- > > diff --git a/debian/rules b/debian/rules > index d8e90c7..70539ab 100755 > --- a/debian/rules > +++ b/debian/rules > @@ -13,7 +13,9 @@ > > PACKAGE=openvswitch > PACKAGE_DKMS=openvswitch-datapath-dkms > -DEB_UPSTREAM_VERSION=$(shell dpkg-parsechangelog | sed -rne 's,^Version: > ([0-9]:)*([^-]+).*,\2,p') > +DEB_VERSION=$(shell dpkg-parsechangelog | awk '/^Version: / {print $$2}' | > sed -rne 's,([0-9]:)+([.])*,\2,p') > +DEB_REVISION=$(shell expr "$(DEB_VERSION)" : '.*\(-.*\)' ) > +DEB_UPSTREAM_VERSION=$(shell version=$(DEB_VERSION); expr + > $${version%"$(DEB_REVISION)"}) > > ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) > PARALLEL = -j$(patsubst parallel=%,%,$(filter > parallel=%,$(DEB_BUILD_OPTIONS))) > > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev