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 <[email protected]>
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
> [email protected]
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev