Closed umpire7777777 closed 9 years ago
The latest versions of cloudprint-* have two new features - OAuth2 authentication, which is now required by Google, and 'systemd' support. Systemd is the new way to run services, and is supported in Debian Jessie/stable, but not a lot of other places. Unfortunately, the two features are a package deal.
The 'force' option is not going to be useful for you.
Your options are to figure out how to get a Debian Jessie install, or to find a cloudprintd 'init script' to store as an executable in /etc/init.d (in lieu of installing cloudprint-service). This discusses how you might be able to do that.
I should say there is a third choice. Install cloudprint, and run from the command line or script with 'cloudprint -d'.
I completed a "sudo apt-get dist-upgrade" to jessie. The package "python-daemon" in jessie is the same version, 1.5.5-1. I'm getting the same message. Confirmed systemd installed and in use. Do I have to figure out how to get the newer python-daemon version to install on jessie?
There are again a couple of options.
You could install an older version of cloudprint-service, 0.11-9, that supports OAuth2, but works with the older daemon module. This older version wants a graphical desktop to be available to help with the OAuth2 authentication. This is awkward with Raspberry Pi, but there is a dedicated 'cloudprint-auth' script available to help with authenticating via a separate computer with a desktop.
Or, you could take advantage of the fact that, when using cloudprint-service, the cloudprint daemon module is not used, or even loaded. That puts the 'force' option back in play:
wget http://davesteele.github.io/cloudprint-service/deb/cloudprint-service_0.13-1_all.deb
sudo dpkg --force-depends -i cloudprint-service_0.13-1_all.deb
Note that I haven't tested any of this.
The python-daemon issue should be fixed in 0.14-2.
Just thought I would comment on this one as the problem still seems to exist in 0.14-3
The new python-daemon proved to be truly incompatible with the old one.
Note that I've had to revert some changes to make a release that is compatible with Debian Stable. If that proves to be OK, it should be useful for Raspberry PI, with a one line change.
Testers are welcome.
Your options are to figure out how to get a Debian Jessie install,
The Raspberry Pi 2 now has a Jessie variant of Raspbian available. However, the included cloudprint-service
does not support OAuth2. I tried to install the current Versions (0.14-3), but the problem with the Python-Daemon seems to persist.
You could install an older version of cloudprint-service, 0.11-9, that supports OAuth2, but works with the older daemon module.
I've now tried your suggestion from above, installing 0.11-9 and use the cloudprint-auth
script to generate a /var/lib/cloudprintd/authfile
. Cloudprint now works, but only if I start it manually. When run on boot it tries to ask for a username:
● cloudprintd.service - Google Cloud Print proxy service
Loaded: loaded (/lib/systemd/system/cloudprintd.service; enabled)
Active: failed (Result: exit-code) since Wed 2015-10-21 16:39:02 CEST; 26min ago
Process: 542 ExecStart=/usr/sbin/cloudprintd -a /var/lib/cloudprintd/authfile (code=exited, status=1/FAILURE)
Main PID: 542 (code=exited, status=1/FAILURE)
Oct 21 16:38:59 raspberrypi systemd[1]: Started Google Cloud Print proxy service.
Oct 21 16:39:01 raspberrypi cloudprintd[542]: Google username: Traceback (most recent call last):
Oct 21 16:39:01 raspberrypi cloudprintd[542]: File "/usr/sbin/cloudprintd", line 9, in <module>
Oct 21 16:39:01 raspberrypi cloudprintd[542]: load_entry_point('cloudprint==0.11', 'console_scripts', 'cloudprint-cmd')()
Oct 21 16:39:01 raspberrypi cloudprintd[542]: File "/usr/share/cloudprint/cloudprint/cloudprint.py", line 457, in main
Oct 21 16:39:01 raspberrypi cloudprintd[542]: cpp.username = raw_input('Google username: ')
Oct 21 16:39:02 raspberrypi cloudprintd[542]: EOFError: EOF when reading a line
Oct 21 16:39:02 raspberrypi systemd[1]: cloudprintd.service: main process exited, code=exited, status=1/FAILURE
Oct 21 16:39:02 raspberrypi systemd[1]: Unit cloudprintd.service entered failed state.
If I understand the output correct, then systemd
tries to execute /usr/sbin/cloudprintd -a /var/lib/cloudprintd/authfile
. I've tried that on the command line and sure enough, the prompt for the Google username appeared. When used with sudo
however it starts up fine. I even made the authfile
world-readable, but that doesn't seem to be the problem either.
I'm really out of ideas. How do I make systemd
start cloudprintd
correctly on boot?
Your immediate problem is that the directory /var/lib/cloudprintd is not world-readable.
But, there's a Jessie candidate available at http://davesteele.github.io/cloudprint-service/. There's no feedback yet, but it may work for you.
See #36 for resolution.
When running the install, I get this response sudo apt-get install cloudprint cloudprint-service
The following packages have unmet dependencies: cloudprint : Depends: python-daemon (>= 2.0) but it is not going to be installed cloudprint-service : Depends: systemd but it is not going to be installed
I read a comment about forcing, but I'm not sure exactly what to do, or if it fits this situation. What do I need to do to install this?
Thanks
Raspberry Pi info pi@raspberrypi ~ $ uname -a Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux