aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix
blob: 6f639ecd77fa2ee069fccc86ad911dc79946fe2a (plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{
  appindicator-sharp,
  coreutils,
  fetchFromGitHub,
  git,
  git-lfs,
  glib,
  gtk-sharp-3_0,
  lib,
  makeWrapper,
  meson,
  mono,
  ninja,
  notify-sharp,
  openssh,
  openssl,
  pkg-config,
  stdenv,
  symlinkJoin,
  webkit2-sharp,
  xdg_utils,
}:

stdenv.mkDerivation rec {
  pname = "sparkleshare";
  version = "3.38";

  src = fetchFromGitHub {
    owner = "hbons";
    repo = "SparkleShare";
    rev = version;
    sha256 = "1a9csflmj96iyr1l0mdm3ziv1bljfcjnzm9xb2y4qqk7ha2p6fbq";
  };

  nativeBuildInputs = [
    makeWrapper
    meson
    mono
    ninja
    pkg-config
  ];

  buildInputs = [
    appindicator-sharp
    gtk-sharp-3_0
    notify-sharp
    webkit2-sharp
  ];

  patchPhase = ''
    # Nix will manage the icon cache.
    echo '#!/bin/sh' >scripts/post-install.sh
  '';

  postInstall = ''
    wrapProgram $out/bin/sparkleshare \
        --set PATH ${symlinkJoin {
          name = "mono-path";
          paths = [
            coreutils
            git
            git-lfs
            glib
            mono
            openssh
            openssl
            xdg_utils
          ];
        }}/bin \
        --set MONO_GAC_PREFIX ${lib.concatStringsSep ":" [
          appindicator-sharp
          gtk-sharp-3_0
          webkit2-sharp
        ]} \
        --set LD_LIBRARY_PATH ${lib.makeLibraryPath [
          appindicator-sharp
          gtk-sharp-3_0.gtk3
          webkit2-sharp
          webkit2-sharp.webkitgtk
        ]}
  '';

  meta = {
    description = "Share and collaborate by syncing with any Git repository instantly. Linux, macOS, and Windows";
    homepage = "https://sparkleshare.org";
    license = lib.licenses.gpl3;
    maintainers = with lib.maintainers; [ kevincox ];
  };
}