From dd777dc7ae1bbad8bb7459dbe05ea8d65fe18a1a Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Aug 01 2011 20:24:25 +0000 Subject: Fix installation of translation files Handle libvirt getVersion failing (bz 726617) --- diff --git a/python-virtinst.spec b/python-virtinst.spec index 5e61f41..7e154ff 100644 --- a/python-virtinst.spec +++ b/python-virtinst.spec @@ -1,7 +1,7 @@ # -*- rpm-spec -*- %define _version 0.600.0 -%define _release 1 +%define _release 2 %define with_rhel6_defaults 0 %define with_selinux 1 @@ -32,6 +32,10 @@ Name: python-%{appname} Version: %{_version} Release: %{_release}%{_extra_release} Source0: http://virt-manager.org/download/sources/%{appname}/%{appname}-%{version}.tar.gz +# Fix installation of translation files +Patch1: %{appname}-fix-po-install.patch +# Handle libvirt getVersion failing (bz 726617) +Patch2: %{appname}-catch-version-errs.patch License: GPLv2+ Group: Development/Libraries @@ -58,6 +62,8 @@ and install new VMs) and virt-clone (clone an existing virtual machine). %prep %setup -q -n %{appname}-%{version} +%patch1 -p1 +%patch2 -p1 %build %if %{with_rhel6_defaults} @@ -71,7 +77,8 @@ python setup.py build \ %install rm -rf $RPM_BUILD_ROOT python setup.py install -O1 --root=$RPM_BUILD_ROOT -%find_lang %{appname} || echo 0 + +%find_lang %{appname} %clean rm -rf $RPM_BUILD_ROOT @@ -94,6 +101,10 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/virt-convert %changelog +* Mon Aug 01 2011 Cole Robinson - 0.600.0-2 +- Fix installation of translation files +- Handle libvirt getVersion failing (bz 726617) + * Tue Jul 26 2011 Cole Robinson - 0.600.0-1.fc17 - Rebased to version 0.600.0 - virt-install: Various improvements to enable LXC/container guests: diff --git a/virtinst-catch-version-errs.patch b/virtinst-catch-version-errs.patch new file mode 100644 index 0000000..7276e71 --- /dev/null +++ b/virtinst-catch-version-errs.patch @@ -0,0 +1,28 @@ +commit c11616761952697dadb2b9a88b761d9816060c54 +Author: Cole Robinson +Date: Mon Aug 1 16:16:01 2011 -0400 + + support: If getting HV version fails, just use 0 + + If libvirt has issues building qemu caps, version can fail. + +diff --git a/virtinst/support.py b/virtinst/support.py +index 1fb3e28..b1db501 100644 +--- a/virtinst/support.py ++++ b/virtinst/support.py +@@ -373,9 +373,12 @@ def _hv_ver(conn, uri): + if not _try_command(cmd, args): + return 0 + +- ret = cmd(*args) +- if type(ret) == tuple: +- ret = ret[1] ++ try: ++ ret = cmd(*args) ++ if type(ret) == tuple: ++ ret = ret[1] ++ except libvirt.libvirtError: ++ ret = 0 + + return ret + diff --git a/virtinst-fix-po-install.patch b/virtinst-fix-po-install.patch new file mode 100644 index 0000000..420d335 --- /dev/null +++ b/virtinst-fix-po-install.patch @@ -0,0 +1,107 @@ +diff --git a/setup.py b/setup.py +index ba4e2d2..27a1c5a 100755 +--- a/setup.py ++++ b/setup.py +@@ -23,17 +23,29 @@ from distutils.command.sdist import sdist + from distutils.command.build import build + from unittest import TextTestRunner, TestLoader + +-scripts = ["virt-install", "virt-clone", "virt-image", "virt-convert"] +-packages = ['virtinst', 'virtconv', 'virtconv.parsers'] +-config_files = ["virtinst/_config.py", "virtconv/_config.py"] +-datafiles = [('share/man/man1', ['man/en/virt-install.1', +- 'man/en/virt-clone.1', +- 'man/en/virt-image.1', +- 'man/en/virt-convert.1']), +- ('share/man/man5', ['man/en/virt-image.5'])] +- + VERSION = "0.600.0" + ++# translation installing ++def _build_po_list(): ++ ret = {} ++ for filename in glob.glob(os.path.join(os.getcwd(), 'po', '*.po')): ++ filename = os.path.basename(filename) ++ lang = os.path.basename(filename)[0:len(filename) - 3] ++ langdir = os.path.join("build", "mo", lang, "LC_MESSAGES") ++ ++ newname = os.path.join(langdir, "virtinst.mo") ++ ret[lang] = (filename, newname) ++ return ret ++ ++def _build_lang_data(): ++ ret = [] ++ for lang, (ignore, newname) in _build_po_list().items(): ++ targetpath = os.path.join("share", "locale", lang, "LC_MESSAGES") ++ ret.append((targetpath, [newname])) ++ return ret ++ ++# Config file building ++config_files = ["virtinst/_config.py", "virtconv/_config.py"] + config_template = """ + __version__ = "%(VERSION)s" + __version_info__ = tuple([ int(num) for num in __version__.split('.')]) +@@ -318,29 +330,24 @@ class mybuild(build): + print "RHEL6 defaults : %s" % bool(self.rhel6defaults) + + for f in config_files: +- origconfig = file(f).read() +- if origconfig == config_data: +- continue ++ if os.path.exists(f): ++ origconfig = file(f).read() ++ if origconfig == config_data: ++ continue + + print "Generating %s" % f + fd = open(f, "w") + fd.write(config_data) + fd.close() + +- for filename in glob.glob(os.path.join(os.getcwd(), 'po', '*.po')): +- filename = os.path.basename(filename) +- lang = os.path.basename(filename)[0:len(filename) - 3] +- langdir = os.path.join("build", "mo", lang, "LC_MESSAGES") ++ for filename, newname in _build_po_list().values(): ++ langdir = os.path.dirname(newname) + if not os.path.exists(langdir): + os.makedirs(langdir) + +- newname = os.path.join(langdir, "virtinst.mo") + print "Formatting %s to %s" % (filename, newname) + os.system("msgfmt po/%s -o %s" % (filename, newname)) + +- targetpath = os.path.join("share", "locale", lang, "LC_MESSAGES") +- self.distribution.data_files.append((targetpath, (newname,))) +- + build.run(self) + + setup( +@@ -353,8 +360,18 @@ setup( + url='http://virt-manager.org', + package_dir={'virtinst': 'virtinst'}, + scripts=["virt-install", "virt-clone", "virt-image", "virt-convert"], +- packages=packages, +- data_files=datafiles, ++ packages=['virtinst', 'virtconv', 'virtconv.parsers'], ++ ++ data_files=[ ++ ('share/man/man1', [ ++ 'man/en/virt-install.1', ++ 'man/en/virt-clone.1', ++ 'man/en/virt-image.1', ++ 'man/en/virt-convert.1']), ++ ('share/man/man5', [ ++ 'man/en/virt-image.5']), ++ ] + _build_lang_data(), ++ + cmdclass={ + 'test': TestCommand, + 'test_urls' : TestURLFetch, +@@ -366,5 +383,5 @@ setup( + 'refresh_translations': refresh_translations, + + 'build': mybuild, +- } ++ }, + )