[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2] tools/mkrpm: improve version.release handling



On 03/24/2015 02:37 PM, Olaf Hering wrote:
> An increasing version and/or release number helps to update existing
> packages without --force as in "rpm Uvh --force xen.rpm". Instead its
> possible to do "rpm -Fvh *.rpm" to update only already installed
> packages.
> 
> The usage of --force disables essentials checks such as file conflict
> detection. As a result the new xen.rpm may overwrite files owned by
> other packages.
> 
> With the current way of calculating version-release it is difficult to
> get an increasing release number into the spec file. The release is
> always zero unless "make make XEN_VENDORVERSION=`date +.%s`" is used,
> which has the bad side effect that xen.gz always gets a different
> filename every time.
> 
> Update mkrpm to recognize PKG_RELEASE=. Its value will be appended to
> the Release string. It can be filled with a time stamp, like:
>  make rpmball PKG_RELEASE="`date +%Y%m%d%H%M%S`"
> 
> Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
> Cc: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
> Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
> ---
>  INSTALL          | 4 +++-
>  tools/misc/mkrpm | 4 +---
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/INSTALL b/INSTALL
> index 1b67c36..8735bf5 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -197,8 +197,10 @@ BOOT_DIR=
>  EFI_DIR=
>  
>  The make target 'rpmball' will build a xen.rpm. This variable can be
> -used to append a custom string to the name.
> +used to append a custom string to the name. In addition a string can be
> +appended to the rpm Release: tag.
>  PKG_SUFFIX=
> +PKG_RELEASE=
>  
>  The hypervisor will report a certain version string. This variable can
>  be used to append a custom string to the version.
> diff --git a/tools/misc/mkrpm b/tools/misc/mkrpm
> index 9b8c6d9..f9363a1 100644
> --- a/tools/misc/mkrpm
> +++ b/tools/misc/mkrpm
> @@ -17,9 +17,7 @@ xenroot="$1"
>  # version and release.  Default to "0" if there isn't a release.
>  v=(${2/-/ })
>  version=${v[0]}
> -release=${v[1]}
> -
> -[[ -n "$release" ]] || release="0"
> +release="${v[1]:-0}${PKG_RELEASE:+.$PKG_RELEASE}"

Thanks Olaf.  I kicked the tires a bit and it seems to work as described.

I think in my ideal world the result would look like this:

case  ${v[1]} &&  PKG_RELEASE: "${v[1]}.${PKG_RELEASE}"
case  ${v[1]} && !PKG_RELEASE: "${v[1]}"
case !${v[1]} &&  PKG_RELEASE: "${PKG_RELEASE}"
case !${v[1]} && !PKG_RELEASE: "0"

Right now the 3rd case looks like "0.${PKG_RELEASE}".  But I think
you've put up enough with my pickiness.  :-)

I may come back and see if I can make a patch so it acts like above; but
for now:

Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
Tested-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.