[Bug 1397374] [NEW] Adding repository via PackageKit D-Bus interface does not work

Till Kamppeter 1397374 at bugs.launchpad.net
Fri Nov 28 16:25:14 UTC 2014


Public bug reported:

I am on Ubuntu Utopic (14.10) and want to do the following, preferably
with a Python script.

I want to install a printer driver package from Epson (which is
available as both DEB and RPM) through its apt or yum repository so that
future updates get installed automatically through the distro's update
mechanism. I also want to assure by means of a key fingerprint that
repository and package are really from Epson.

The package name for example is

epson-inkjet-printer-escpr

The key fingerprint is

E5220FB7014D0FBDA50DFC2BE5E86C008AA65D56

and the Debian package repository is

deb http://download.ebz.epson.net/dsc/op/stable/debian/ lsb3.2 main

This data is polled from OpenPrinting:

https://www.openprinting.org/query.cgi?moreinfo=1&showprinterid=1&onlynewestdriverpackages=0&architectures=amd64&noobsoletes=1&onlyfree=0&onlymanufacturer=0&onlydownload=1&packagesystem=deb&onlysigneddriverpackages=0&format=xml&type=drivers&printer=MFG:EPSON;MDL
:EP-801A%20Series;DES:EPSON%20EP-801A%20Series;CLS:PRINTER;

You can replace the packagesystem=deb in the URL by packagesystem=rpm
for RPM-based distros.

Now I run a script of system-config-printer,
/usr/share/system-config-printer/install-printerdriver.py via the command

install-printerdriver 'epson-inkjet-printer-escpr' 'deb
http://download.ebz.epson.net/dsc/op/stable/debian/ lsb3.2 main'
'E5220FB7014D0FBDA50DFC2BE5E86C008AA65D56'

Or by pasting the commands at the python prompt:

till at till-twist:~/ubuntu/system-config-printer/test$ python3
Python 3.4.2 (default, Oct  8 2014, 13:08:17)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from gi.repository import GLib, PackageKitGlib
>>> import sys
>>> def progress(progress, type, user_data):
... pass
...
>>> pk = PackageKitGlib.Client()
>>> repo = 'deb http://download.ebz.epson.net/dsc/op/stable/debian/
lsb3.2 main'
>>> res = pk.repo_enable(repo, True, None, progress, None)

And I get

Could not found the repositorie

And if I do

pkcon repo-enable 'deb
http://download.ebz.epson.net/dsc/op/stable/debian/ lsb3.2 main'

I get the same error. I tried also with other repositories, even ones
which are already added to the system and always get this error.

How do I add a repository with PackageKit?

till at till-twist:~/ubuntu/system-config-printer/test$ pkcon backend-details
Name:		aptcc
Description:	APTcc
Author:	Daniel Nicoletti <dantti12 at gmail.com>
till at till-twist:~/ubuntu/system-config-printer/test$

Another problem is installing the signature. Formerly

>>> repo_gpg_id = "E5220FB7014D0FBDA50DFC2BE5E86C008AA65D56"
>>> res = pk.install_signature(PackageKitGlib.SigTypeEnum.GPG,
repo_gpg_id, '', None, progress, None)
>>>

worked (note the empty string for the package ID). Now a package ID is
required, and to obtain it I have to add the repository, but is it not a
security problem to already add the repository if the signature is not
yet installed?

This all still worked on Trusty (14.04).

Is there a problem with the Python bindings of the client (perhaps due
to Python3)? Or is perhaps the D-Bus service (aptdaemon on Ubuntu) at fault?

** Affects: aptdaemon (Ubuntu)
     Importance: High
         Status: New

** Changed in: aptdaemon (Ubuntu)
   Importance: Undecided => High

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to aptdaemon in Ubuntu.
https://bugs.launchpad.net/bugs/1397374

Title:
  Adding repository via PackageKit D-Bus interface does not work

Status in aptdaemon package in Ubuntu:
  New

Bug description:
  I am on Ubuntu Utopic (14.10) and want to do the following, preferably
  with a Python script.

  I want to install a printer driver package from Epson (which is
  available as both DEB and RPM) through its apt or yum repository so that
  future updates get installed automatically through the distro's update
  mechanism. I also want to assure by means of a key fingerprint that
  repository and package are really from Epson.

  The package name for example is

  epson-inkjet-printer-escpr

  The key fingerprint is

  E5220FB7014D0FBDA50DFC2BE5E86C008AA65D56

  and the Debian package repository is

  deb http://download.ebz.epson.net/dsc/op/stable/debian/ lsb3.2 main

  This data is polled from OpenPrinting:

  https://www.openprinting.org/query.cgi?moreinfo=1&showprinterid=1&onlynewestdriverpackages=0&architectures=amd64&noobsoletes=1&onlyfree=0&onlymanufacturer=0&onlydownload=1&packagesystem=deb&onlysigneddriverpackages=0&format=xml&type=drivers&printer=MFG:EPSON;MDL
  :EP-801A%20Series;DES:EPSON%20EP-801A%20Series;CLS:PRINTER;

  You can replace the packagesystem=deb in the URL by packagesystem=rpm
  for RPM-based distros.

  Now I run a script of system-config-printer,
  /usr/share/system-config-printer/install-printerdriver.py via the command

  install-printerdriver 'epson-inkjet-printer-escpr' 'deb
  http://download.ebz.epson.net/dsc/op/stable/debian/ lsb3.2 main'
  'E5220FB7014D0FBDA50DFC2BE5E86C008AA65D56'

  Or by pasting the commands at the python prompt:

  till at till-twist:~/ubuntu/system-config-printer/test$ python3
  Python 3.4.2 (default, Oct  8 2014, 13:08:17)
  [GCC 4.9.1] on linux
  Type "help", "copyright", "credits" or "license" for more information.
  >>> from gi.repository import GLib, PackageKitGlib
  >>> import sys
  >>> def progress(progress, type, user_data):
  ... pass
  ...
  >>> pk = PackageKitGlib.Client()
  >>> repo = 'deb http://download.ebz.epson.net/dsc/op/stable/debian/
  lsb3.2 main'
  >>> res = pk.repo_enable(repo, True, None, progress, None)

  And I get

  Could not found the repositorie

  And if I do

  pkcon repo-enable 'deb
  http://download.ebz.epson.net/dsc/op/stable/debian/ lsb3.2 main'

  I get the same error. I tried also with other repositories, even ones
  which are already added to the system and always get this error.

  How do I add a repository with PackageKit?

  till at till-twist:~/ubuntu/system-config-printer/test$ pkcon backend-details
  Name:		aptcc
  Description:	APTcc
  Author:	Daniel Nicoletti <dantti12 at gmail.com>
  till at till-twist:~/ubuntu/system-config-printer/test$

  Another problem is installing the signature. Formerly

  >>> repo_gpg_id = "E5220FB7014D0FBDA50DFC2BE5E86C008AA65D56"
  >>> res = pk.install_signature(PackageKitGlib.SigTypeEnum.GPG,
  repo_gpg_id, '', None, progress, None)
  >>>

  worked (note the empty string for the package ID). Now a package ID is
  required, and to obtain it I have to add the repository, but is it not a
  security problem to already add the repository if the signature is not
  yet installed?

  This all still worked on Trusty (14.04).

  Is there a problem with the Python bindings of the client (perhaps due
  to Python3)? Or is perhaps the D-Bus service (aptdaemon on Ubuntu) at fault?

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/aptdaemon/+bug/1397374/+subscriptions



More information about the foundations-bugs mailing list