Bug 882024
Summary: | virt-manager packagekit install is broken on kde | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Peter Trenholme <PTrenholme> |
Component: | virt-manager | Assignee: | Cole Robinson <crobinso> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | unspecified | ||
Version: | 18 | CC: | berrange, crobinso, dantti12, hbrock, jforbes, kevin, ltinkl, rdieter, rhughes, smparrish, virt-maint |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2013-04-10 01:28:40 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Peter Trenholme
2012-11-30 00:13:06 UTC
This is because we still screwed up some variable substitution, so virt-manager is trying to install ::KVM_PACKAGES:: and PackageKit is correctly telling us that it's not a valid package Err, ignore that last comment, wrong bug. I can't reproduce this issue, packagekit installs packages quite fine here. Are you using gnome desktop, or something else like kde? I use KDE, and only install the minimum GNOME stuff needed to make thing work. That being said, have you verified that the "InstallPackageNames" method is, in fact, defined? (If it is, someone is not too familiar with standard English usage unless, for some strange reason, the names of packages need to be "installed" before a package (or set of packages) can be installed by name.) This, however, suggests that the method name should have been "InstallPackages": $ grep '<method' /usr/share/dbus-1/interfaces/org.freedesktop.PackageKit.xml <method name="CanAuthorize"> <method name="CreateTransaction"> <method name="GetTimeSinceAction"> <method name="GetTransactionList"> <method name="StateHasChanged"> <method name="SuggestDaemonQuit"> <method name="GetDaemonState"> <method name="SetProxy"> $ grep '<method' /usr/share/dbus-1/interfaces/org.freedesktop.PackageKit.Transaction.xml <method name="SetHints"> <method name="AcceptEula"> <method name="Cancel"> <method name="DownloadPackages"> <method name="GetCategories"> <method name="GetDepends"> <method name="GetDetails"> <method name="GetFiles"> <method name="GetOldTransactions"> <method name="GetPackages"> <method name="GetRepoList"> <method name="GetRequires"> <method name="GetUpdateDetail"> <method name="GetUpdates"> <method name="GetDistroUpgrades"> <method name="InstallFiles"> <method name="InstallPackages"> <method name="InstallSignature"> <method name="RefreshCache"> <method name="RemovePackages"> <method name="RepoEnable"> <method name="RepoSetData"> <method name="Resolve"> <method name="SearchDetails"> <method name="SearchFiles"> <method name="SearchGroups"> <method name="SearchNames"> <method name="UpdatePackages"> <method name="WhatProvides"> <method name="UpgradeSystem"> <method name="RepairSystem"> $ I did just check my installed package list, and both gnome-packagekit and apper are in it. Okay, I dug into this a bit. InstallPackageNames comes from the session org.freedesktop.PackageKit provider. gnome-packagekit for gnome and apper for KDE. AFAICT they are supposed to provide the exact same interface, and they even both have the reference XML spec in their source trees. It isn't installed anywhere though, so I think the API is hardcoded into the provider binaries, hence why your grep didn't find it. So apper is supposed to be providing InstallPackageNames. If you grep the source, there are tons of hits for it, so I think it is intending to provide it by something is going wrong. If you pull latest virt-manager from F18 updates-testing, this issue is easy to reproduce by uninstalling libvirt\*, and doing virt-manager --test-first-run After that, the apper provider will be autolaunched. Then you can poke at the dbus interface with the d-feet tool, go to org.freedesktop.PackageKit. However d-feet has some issues parsing info about the apper interface, which might be another symptom of the underlying issue, whatever it is: ERROR:dbus.proxies:Introspect error on org.freedesktop.PackageKit:/org/freedesktop/PackageKit: dbus.exceptions.IntrospectionParserException: Error parsing introspect data: <class 'xml.parsers.expat.ExpatError'>: unbound prefix: line 5, column 4 ERROR: Some clever service is trying to be cute and has the same method name in the same interface ERROR: Some clever service is trying to be cute and has the same method name in the same interface ERROR: Some clever service is trying to be cute and has the same method name in the same interface Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/dbus/connection.py", line 604, in msg_reply_handler reply_handler(*message.get_args_list(**get_args_opts)) File "/usr/lib/python2.7/site-packages/dfeet/dbus_introspector.py", line 60, in <lambda> reply_handler=lambda xml: self._query_introspect_data_cb(name, node, xml), File "/usr/lib/python2.7/site-packages/dfeet/dbus_introspector.py", line 70, in _query_introspect_data_cb data = _introspect_parser.process_introspection_data(xml) File "/usr/lib/python2.7/site-packages/dfeet/_introspect_parser.py", line 150, in process_introspection_data raise IntrospectionParserException('%s: %s' % (e.__class__, e)) dbus.exceptions.IntrospectionParserException: Error parsing introspect data: <class 'xml.parsers.expat.ExpatError'>: unbound prefix: line 5, column 4 The bug is in virt-manager. The correct DBus signature is uass and not iass (the fist parameter is an uint and not an integer) like virt-manager is trying to pass, both gnome-packagekit and apper share the same identical session interface. Please reasing. reassigning to virt-manager per comment #5 Thanks for pointing that out Daniel, I didn't notice. Strange that gnome-packagekit doesn't choke on that, but ah well. I've fixed this in virt-manager and verified it works on kde and gnome: http://git.fedorahosted.org/cgit/virt-manager.git/commit/?id=1abd03ed80b47a5506798d341924e2b3d577a8fc I filed the d-feet issue at: https://bugzilla.redhat.com/show_bug.cgi?id=889302 Right, gdbus is more forgiving than libdbus, it's not the first time a wrong signature usage is more forgiving on gdbus. DBus itself just passes the message without verifying it's signature. virt-manager-0.9.5-1.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/virt-manager-0.9.5-1.fc18 Package virt-manager-0.9.5-1.fc18: * should fix your issue, * was pushed to the Fedora 18 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing virt-manager-0.9.5-1.fc18' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-4629/virt-manager-0.9.5-1.fc18 then log in and leave karma (feedback). virt-manager-0.9.5-1.fc18 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report. |