As I wanted to be able to print from my phone, I thought the easiest way would be to install Google Cloud Print. Here are the various attempts that I made.
Attempt 1: apt-get
My first attempt was to simply run:
- sudo apt-get install cloudprint
However, when running it and giving it your user/application pass, it fails with this message:
- UnboundLocalError: local variable 'auth_response' referenced before assignment
I believe it is because it (v0.5) is trying to hit an api/url that no longer exists.
Cleanup:
- sudo apt-get remove cloudprint
Attempt 2: Compile with gccgo
I then found this wiki about installing a newer version:
https://github.com/google/cloud-print-connector/wiki/Build-from-source
So I then installed:
- go: sudo apt-get install gccgo-go
- dev packages: sudo apt-get install build-essential libcups2-dev libavahi-client-dev git bzr
Set your gopath:
- export GOPATH=$HOME/workspace/gocode
I then attempted to compile the source:
- go get github.com/google/cloud-print-connector/...
However I was greeted with two errors:
- error: unknown field ‘KeepAlive’ in ‘net.Dialer’
- error: reference to undefined field or method ‘Timeout’
It turns out that the go version that apt-get installs is outdated:
- go version xgcc (Ubuntu 4.9.3-0ubuntu4) 4.9.3 linux/amd64
- which is not greater than or equal to version 1.5.2
Cleanup:
- sudo apt-get remove gcc-go
Attempt 3: The correct way
You will still need the dev packages and gopath from attempt 2:
- sudo apt-get install build-essential libcups2-dev libavahi-client-dev git bzr
- export GOPATH=$HOME/workspace/gocode
Additionally, we will need an updated version of go:
Now we compile again:
- go get github.com/google/cloud-print-connector/...
The command should complete with no output.
Configuring
$GOPATH/bin/gcp-connector-util init
Running
$GOPATH/bin/gcp-cups-connector