[virt-tools-list] [PATCH 2/2] Bump version 1.0 to simplify Windows MSI versioning

Marc-André Lureau mlureau at redhat.com
Mon Jun 9 11:43:40 UTC 2014



----- Original Message -----
> The Windows MSI product version is restricted to a 3 component
> version number, whose fields are a max value of 255.255.65536
> 
> Since the main virt-viewer version takes up 3 components already,
> we have the munge the micro version together with the first
> component of the release version. eg we have
> 
>    $VERSION[0].$VERSION[1].($VERSION[2] << 8 + $RELEASE[0])
> 
> This causes problems for RHEL which needs to have 2-component
> release versions to deal with z-stream builds.  eg a RHEL
> version might be virt-viewer-0.5.6-2.el6_4.3 and we've
> no easy way of adding the final '.3' to the Windows product
> version.
> 
> If we reduce the primary virt-viewer version to just 2 components,
> then we can leave the 3rd component for exclusive use by the RPM
> release number. eg so we'd make product version up using
> 
>    $VERSION[0].$VERSION[1].($RELEASE[0] << 8 + $RELEASE[1])

YES!

> 
> In course of normal development, we'd increase the $VERSION[0]
> for each release. ie next release is 1.0, then 2.0, then 3.0.
> This means we retain the ability to put out "stable" branch
> releases for any historical version by doing 1.1, 1.2 instead
> of having to re-add a 3rd component.
> 
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
>  configure.ac              | 15 +++++----------
>  mingw-virt-viewer.spec.in | 17 ++++++++++++++---
>  2 files changed, 19 insertions(+), 13 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index f4b97d1..b5a504d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1,5 +1,5 @@
>  
> -AC_INIT([virt-viewer],[0.6.0])
> +AC_INIT([virt-viewer],[1.0])
>  AC_CONFIG_SRCDIR(src/virt-viewer-main.c)
>  AC_CONFIG_MACRO_DIR([m4])
>  AC_CONFIG_AUX_DIR([build-aux])
> @@ -214,19 +214,14 @@ AC_ARG_WITH([buildid],
>      AS_HELP_STRING([--with-buildid=id], [Set additional build version
>      details]),
>      [buildid="-$with_buildid"], [buildid=""])

I think it's nicer to have a default value of 0 for buildid here, iirc, windows installer will fail with invalid productversion otherwise.

>  AC_DEFINE_UNQUOTED([BUILDID], "$buildid", [Build version details])
> -if test "x$buildid" != x; then
> -    AC_SUBST([BUILDID], "$buildid")
> +if test "x$buildid" = x; then
> +    buildid="0"
>  fi
> +AC_SUBST([BUILDID], "$buildid")
>  
>  major=`echo $PACKAGE_VERSION | cut -d. -f1`
>  minor=`echo $PACKAGE_VERSION | cut -d. -f2`
> -micro=`echo $PACKAGE_VERSION | cut -d. -f3`
> -buildid=`echo $with_buildid | cut -d. -f1`
> -if test "x$buildid" = x; then
> -   buildid=0
> -fi
> -build=`expr $micro \* 256 + $buildid`
> -WINDOWS_PRODUCTVERSION="$major.$minor.$build"
> +WINDOWS_PRODUCTVERSION="$major.$minor.$buildid"
>  AC_SUBST([WINDOWS_PRODUCTVERSION])
>  
>  
> diff --git a/mingw-virt-viewer.spec.in b/mingw-virt-viewer.spec.in
> index fb1c9fd..bf83d08 100644
> --- a/mingw-virt-viewer.spec.in
> +++ b/mingw-virt-viewer.spec.in
> @@ -1,8 +1,20 @@
>  %{?mingw_package_header}
>  
> +%define relver 1%{?dist}
> +
> +# We want the 1st part of the release number, and
> +# the 3rd part (or 0 if not present). We want to
> +# avoid the autobuild magic %{extra_release} too
> +# which is not purely numeric and larger than 255.
> +# This scheme lets us cope with RHEL-style z-stream
> +# versioning when creating Win product versions
> +%define rel0 %(echo %{relver} | cut -d. -f1)
> +%define rel1 %(test -z "`echo %{relver} | cut -d. -f3`" && echo 0 || (echo
> %{relver} | cut -d. -f3))
> +%define buildid %(expr %{rel0} \\* 256 + %{rel1})
> +
>  Name:           mingw-virt-viewer
>  Version:        @VERSION@
> -Release:        1%{?dist}%{?extra_release}
> +Release:        %{relver}%{?extra_release}
>  Summary:        MinGW Windows virt-viewer console application
>  
>  License:        GPLv2+
> @@ -83,9 +95,8 @@ MinGW Windows virt-viewer MSI
>  %prep
>  %setup -q -n virt-viewer-%{version}
>  
> -
>  %build
> -%mingw_configure --with-gtk=2.0 --with-buildid=%{release}
> +%mingw_configure --with-gtk=2.0 --with-buildid=%{buildid}
>  
>  %mingw_make %{?_smp_mflags} V=1
>  %mingw_make %{?_smp_mflags} V=1 -C data msi
> --
> 1.9.3
> 
> _______________________________________________
> virt-tools-list mailing list
> virt-tools-list at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list
> 




More information about the virt-tools-list mailing list