touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #27799
[Bug 1381050] Re: "Import Key File" fails when the path of the file has special characters
I finally found the cause of the problem!
It seems that the DBus service (or the whole DBus) is not running in a UTF-8 locale, thus causing errors in UTF-8 strings.
The workaround is to edit softwareproperties/SoftwareProperties.py and add:
path = path.encode('utf-8')
in method "def add_key(self, path)" around line 800 before the line:
if not os.path.exists(path):
This encoding issue may be causing problems in other parts of the
program, and other programs.
Meanwhile, I found another bug:
Dragging and dropping a key file to the list doesn't work, raising an exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/softwareproperties/gtk/SoftwarePropertiesGtk.py", line 759, in on_auth_drag_data_received
keydata = selection.data.strip()
AttributeError: 'SelectionData' object has no attribute 'data'
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to software-properties in
Ubuntu.
https://bugs.launchpad.net/bugs/1381050
Title:
"Import Key File" fails when the path of the file has special
characters
Status in “software-properties” package in Ubuntu:
New
Bug description:
The "Import Key File..." button in the "Authentication" tab fails
silently when the path of the selected key file includes special
characters.
I'm using Ubuntu in Portuguese, so the "/home/$USER/Downloads" folder is named "/home/$USER/Transferências" here.
Adding a key from that folder fails, but adding a key from "/home/$USER" (no special characters) succeeds.
The problem is that, in
softwareproperties/gtk/SoftwarePropertiesGtk.py in method
SoftwarePropertiesGtk.add_key_clicked() at around line 952:
if res == Gtk.ResponseType.ACCEPT:
try:
if not self.backend.AddKey(chooser.get_filename()):
error(self.window_main,
_("Error importing selected file"),
_("The selected file may not be a GPG key file "
"or it might be corrupt."))
except dbus.DBusException as e:
if e._dbus_error_name == 'com.ubuntu.SoftwareProperties.PermissionDeniedByPolicy':
logging.error("Authentication canceled, changes have not been saved")
"self.backend.AddKey(chooser.get_filename())" throws a "org.freedesktop.DBus.Python.UnicodeEncodeError" exception for paths with special characters.
This is probably a side effect of switching from Python 2 to 3 (and 'bytes' now being used in network communications where 'str' was previously used).
Another issue is that the error isn't reported to the user, and it
should be.
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: software-properties-gtk 0.92.37.1
ProcVersionSignature: Ubuntu 3.13.0-37.64-generic 3.13.11.7
Uname: Linux 3.13.0-37-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.5
Architecture: amd64
CurrentDesktop: Unity
Date: Tue Oct 14 13:22:21 2014
EcryptfsInUse: Yes
InstallationDate: Installed on 2014-10-13 (0 days ago)
InstallationMedia: Ubuntu 14.04.1 LTS "Trusty Tahr" - Release amd64 (20140722.2)
PackageArchitecture: all
SourcePackage: software-properties
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1381050/+subscriptions
References