summary refs log tree commit diff
path: root/pkgs/servers/cloud-print-connector/default.nix
blob: 2fb5b403508696788942e54534e7c4b192a6c4cc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
{ stdenv, buildGoPackage, fetchFromGitHub, avahi, cups, fetchpatch }:

# TODO: Add a service for gcp-cups-connector and perhaps some other
# kind of configuration for the same thing that gcp-connector-util
# provides.

# Mic92 has an example module:
# - https://github.com/Mic92/dotfiles/blob/ba2a01144cfdc71c829d872a3fc816c64663ad7f/nixos/vms/matchbox/modules/cloud-print-connector.nix

buildGoPackage rec {
  pname = "cloud-print-connector-unstable";
  version = "1.16";
  rev = "481ad139cc023a3ba65e769f08f277368fa8a5de";

  goPackagePath = "github.com/google/cloud-print-connector";

  subPackages = [
    "gcp-connector-util"
    "gcp-cups-connector"
  ];

  patches = [
    (fetchpatch {
      # https://github.com/google/cloud-print-connector/pull/475
      url = "https://github.com/google/cloud-print-connector/commit/6a77c7c283b83cbcc9cbfab59710023cd09da3ed.patch";
      sha256 = "054pi9nz402va95z5k6wq3dalnv5rcya078wa99p1kdwb7cqmrcq";
    })
  ];

  src = fetchFromGitHub {
    owner = "google";
    repo = "cloud-print-connector";
    sha256 = "0z2xad4wsv962rc1rspghfcfkz4nj2j5l5cm7xyn6qmsag0m8y2x";
    rev = "v${version}";
  };

  # To compute a new go2nix deps.go file,
  # change to the gcp-connector-util directory and create a nix-shell with avahi and
  # cups in it.

  # manually mirrored from launchpad because cloning failed due insecure http protocol
  # {
  #   goPackagePath = "launchpad.net/go-xdg/v0";
  #   fetch = {
  #     type = "git";
  #     url = "https://github.com/Mic92/go-xdg";
  #     rev = "b3fc6b3106d78701853b0caf62ebedae42769af2";
  #     sha256 = "0fd68kkxzxjanpgannpys962bxzqdf8c1qvzk687hv504a3dp76f";
  #   };
  # }
  goDeps = ./deps.nix;

  buildInputs = [ avahi cups ];

  meta = with stdenv.lib; {
    description = "Share printers from your Windows, Linux, FreeBSD or macOS computer with ChromeOS and Android devices, using the Cloud Print Connector";
    homepage = https://github.com/google/cloud-print-connector;
    license = licenses.bsd3;
    maintainers = with maintainers; [ hodapp ];
    # TODO: Fix broken build on macOS.  The GitHub presently lists the
    # FreeBSD build as broken too, but this may change in the future.
    platforms = platforms.unix;
  };
}