[Kimchi-devel] [PATCH 3/4] Upgrade to Kimchi 2.0: change SPEC files to update objectstore content.

Aline Manera alinefm at linux.vnet.ibm.com
Wed Oct 28 12:34:39 UTC 2015


This patch set only covers the scenario when user is 
installing/upgrading Kimchi from a package.

We also need to think about users whom installed Kimchi using 
make-install or even those running locally.

So to cover all installation types, I suggest to make a solution outside 
SPEC files / build process.

As I suggested before, we can add a tag "version" to the objectstore 
which reflects the Kimchi version.
On server starts up, we verify the version and do the update if needed.

That way we make sure the user will get the update objectstore 
independent on how he/she has installed it before.

What do you think about it?

Regards,
Aline Manera

On 26/10/2015 17:16, pvital at linux.vnet.ibm.com wrote:
> From: Paulo Vital <pvital at linux.vnet.ibm.com>
>
> Changed the spec file to execute the script to update the content of the
> objectstore file after upgrade from Kimchi 1.5.1 (or previous versions) to
> the new Wok and Kimchi 2.0 RPM's.
>
> Signed-off-by: Paulo Vital <pvital at linux.vnet.ibm.com>
> ---
>   src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in | 9 +++++++++
>   src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in   | 7 +++++++
>   2 files changed, 16 insertions(+)
>
> diff --git a/src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in b/src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in
> index fbc59c4..e987856 100644
> --- a/src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in
> +++ b/src/wok/plugins/kimchi/contrib/kimchi.spec.fedora.in
> @@ -71,17 +71,26 @@ if [ $1 -eq 2 ]; then
>       if [ -e %{_sharedstatedir}/kimchi/objectstore ] && [ $cur_version -lt 2 ]; then
>           mkdir -p %{_tmppath}/kimchi
>           cp %{_sharedstatedir}/kimchi/objectstore %{_tmppath}/kimchi/
> +        touch %{_tmppath}/kimchi/need_update
>       fi
>   fi
>
> +
>   %install
>   rm -rf %{buildroot}
>   make DESTDIR=%{buildroot} install
>
> +# Install update_objectstore.py to execute update to Kimchi/Wok version 2.0.0
> +install -Dm 0744 contrib/update_objectstore.py %{buildroot}%{_datadir}/wok/plugins/kimchi/utils/update_objectstore.py
> +
> +
>   %posttrans
>   # Copy backup'ed objectstore file to correct place.
>   if [ -e %{_tmppath}/kimchi/objectstore ]; then
>       cp %{_tmppath}/kimchi/objectstore %{_sharedstatedir}/kimchi/
> +    if [ -e %{_tmppath}/kimchi/need_update ]; then
> +        python %{_datadir}/wok/plugins/kimchi/utils/update_objectstore.py
> +    fi
>       rm -rf %{_tmppath}/kimchi
>   fi
>
> diff --git a/src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in b/src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in
> index 5346c17..571cb1f 100644
> --- a/src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in
> +++ b/src/wok/plugins/kimchi/contrib/kimchi.spec.suse.in
> @@ -59,6 +59,7 @@ if [ $1 -eq 2 ]; then
>       if [ -e %{_var}/lib/kimchi/objectstore ] && [ $cur_version -lt 2 ]; then
>           mkdir -p %{_tmppath}/kimchi
>           cp %{_var}/lib/kimchi/objectstore %{_tmppath}/kimchi/
> +        touch %{_tmppath}/kimchi/need_update
>       fi
>   fi
>
> @@ -66,10 +67,16 @@ fi
>   rm -rf %{buildroot}
>   make DESTDIR=%{buildroot} install
>
> +# Install update_objectstore.py to execute update to Kimchi/Wok version 2.0.0
> +install -Dm 0744 contrib/update_objectstore.py %{buildroot}%{_datadir}/wok/plugins/kimchi/utils/update_objectstore.py
> +
>   %posttrans
>   # Copy backup'ed objectstore file to correct place.
>   if [ -e %{_tmppath}/kimchi/objectstore ]; then
>       cp %{_tmppath}/kimchi/objectstore %{_var}/lib/kimchi/
> +    if [ -e %{_tmppath}/kimchi/need_update ]; then
> +        python %{_datadir}/wok/plugins/kimchi/utils/update_objectstore.py
> +    fi
>       rm -rf %{_tmppath}/kimchi
>   fi
>




More information about the Kimchi-devel mailing list