1{
2 lib,
3 pythonPackages,
4 fetchFromGitHub,
5 makeWrapper,
6 sshfs-fuse,
7 torsocks,
8 sshuttle,
9 conntrack-tools,
10 openssh,
11 coreutils,
12 iptables,
13 bash,
14}:
15
16let
17 sshuttle-telepresence = lib.overrideDerivation sshuttle (p: {
18 postInstall = "mv $out/bin/sshuttle $out/bin/sshuttle-telepresence";
19 });
20in
21pythonPackages.buildPythonPackage rec {
22 pname = "telepresence";
23 version = "0.109";
24 format = "setuptools";
25
26 src = fetchFromGitHub {
27 owner = "telepresenceio";
28 repo = "telepresence";
29 rev = version;
30 sha256 = "1ccc8bzcdxp6rh6llk7grcnmyc05fq7dz5w0mifdzjv3a473hsky";
31 };
32
33 patches = [
34 ./fix-versioneer.patch
35 ];
36
37 nativeBuildInputs = [ makeWrapper ];
38
39 postInstall = ''
40 wrapProgram $out/bin/telepresence \
41 --prefix PATH : ${
42 lib.makeBinPath [
43 sshfs-fuse
44 torsocks
45 conntrack-tools
46 sshuttle-telepresence
47 openssh
48 coreutils
49 iptables
50 bash
51 ]
52 }
53 '';
54
55 doCheck = false;
56
57 meta = {
58 homepage = "https://www.telepresence.io/";
59 description = "Local development against a remote Kubernetes or OpenShift cluster";
60 mainProgram = "telepresence";
61 license = with lib.licenses; [ asl20 ];
62 maintainers = with lib.maintainers; [ offline ];
63 };
64}