biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / replay-io / default.nix
blobaafee56e2bd0f138e018954d3b89f3cfe855b329
1 { stdenv, lib, fetchurl, fetchFromGitHub, autoPatchelfHook, makeWrapper, libcxx
2 , libX11, libXt, libXdamage, glib, gtk3, dbus-glib, openssl, nodejs, zlib
3 , fetchzip }:
4 let metadata = lib.importJSON ./meta.json;
5 in rec {
6   replay-recordreplay = stdenv.mkDerivation rec {
7     pname = "replay-recordreplay";
8     version = builtins.head (builtins.match ".*/linux-recordreplay-(.*).tgz"
9       metadata.recordreplay.url);
10     nativeBuildInputs = [ autoPatchelfHook ];
11     buildInputs = [ stdenv.cc.cc.lib openssl zlib ];
13     src = (fetchzip metadata.recordreplay);
14     dontBuild = true;
15     installPhase = ''
16       runHook preInstall
17       cp linux-recordreplay.so $out
18       runHook postInstall
19     '';
20     postFixup = ''
21       patchelf --set-rpath "$(patchelf --print-rpath $out):${
22         lib.makeLibraryPath [ openssl ]
23       }" $out
24     '';
25     meta = with lib; {
26       description = "RecordReplay internal recording library";
27       homepage = "https://www.replay.io/";
28       license = lib.licenses.unfree;
29       maintainers = with maintainers; [ phryneas ];
30       platforms = [ "x86_64-linux" ];
31     };
32   };
34   replay-io = stdenv.mkDerivation rec {
35     pname = "replay-io";
36     version = builtins.head
37       (builtins.match ".*/linux-gecko-(.*).tar.bz2" metadata.replay.url);
38     srcs = fetchurl metadata.replay;
39     nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
40     buildInputs = [ dbus-glib glib gtk3 libX11 libXdamage libXt ];
41     installPhase = ''
42       runHook preInstall
43       mkdir -p $out/opt/replay-io
44       cp -r * $out/opt/replay-io
45       mkdir $out/bin
46       makeWrapper $out/opt/replay-io/replay \
47         $out/bin/replay-io \
48         --set "RECORD_REPLAY_DRIVER" "${replay-recordreplay}"
49       runHook postInstall
50     '';
52     passthru.updateScript = ./update.sh;
54     meta = with lib; {
55       description = "The Time Travel Debugger for Web Development";
56       longDescription = ''
57         Replay allows you to record and replay web applications with familiar browser dev tools.
58         You can access the browser DevTools at any point of the recording, adding new logger
59         statements and inspecting the status of the DOM, variables and the current call stack.
60         Your recordings can be shared with other users for collaborative debugging.
61       '';
62       homepage = "https://www.replay.io/";
63       downloadPage = "https://www.replay.io/";
64       mainProgram = "replay-io";
65       license = lib.licenses.mpl20;
66       maintainers = with maintainers; [ phryneas ];
67       platforms = [ "x86_64-linux" ];
68     };
69   };
71   replay-node = stdenv.mkDerivation rec {
72     pname = "replay-node";
73     version = builtins.head
74       (builtins.match ".*/linux-node-(.*)" metadata.replay-node.url);
75     nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
76     buildInputs = [ stdenv.cc.cc.lib ];
78     src = (fetchurl metadata.replay-node);
79     dontUnpack = true;
80     dontBuild = true;
81     installPhase = ''
82       runHook preInstall
83       mkdir -p $out/bin $out/opt/replay-node
84       cp $src $out/opt/replay-node/node-unwrapped
85       chmod +x $out/opt/replay-node/node-unwrapped
87       makeWrapper $out/opt/replay-node/node-unwrapped \
88         $out/opt/replay-node/node \
89         --set "RECORD_REPLAY_DRIVER" "${replay-recordreplay}"
91       ln -s $out/opt/replay-node/node $out/bin/replay-node
92       runHook postInstall
93     '';
95     meta = with lib; {
96       description = "Event-driven I/O framework for the V8 JavaScript engine, patched for replay";
97       homepage = "https://github.com/RecordReplay/node";
98       license = licenses.mit;
99       maintainers = with maintainers; [ phryneas ];
100       platforms = platforms.linux;
101       mainProgram = "replay-node";
102     };
103   };
105   replay-node-cli = stdenv.mkDerivation {
106     pname = "replay-node-cli";
107     version = "0.1.7-" + builtins.head
108       (builtins.match ".*/linux-node-(.*)" metadata.replay-node.url);
109     src = fetchFromGitHub {
110       owner = "RecordReplay";
111       repo = "replay-node-cli";
112       rev = "5269c8b8e7c5c7a9618a68f883d19c11a68be837";
113       sha256 = "04d22q3dvs9vxpb9ps64pdxq9ziwgvnzdgsn6p9p0lzjagh0f5n0";
114     };
116     nativeBuildInputs = [ makeWrapper ];
117     buildInputs = [ stdenv.cc.cc.lib nodejs ];
118     dontBuild = true;
119     installPhase = ''
120       runHook preInstall
121       mkdir -p $out/opt/replay-node-cli
122       cp -r * $out/opt/replay-node-cli
123       makeWrapper $out/opt/replay-node-cli/bin/replay-node \
124         $out/bin/replay-node \
125         --prefix "PATH" ":" "${nodejs}/bin" \
126         --set "RECORD_REPLAY_NODE_DIRECTORY" "${replay-node}/opt/replay-node"
127       runHook postInstall
128     '';
130     meta = with lib; {
131       description = "The Time Travel Debugger for Web Development - Node Command Line";
132       longDescription = ''
133         The Replay Node Command Line allows you to record node applications and debug them
134         with familiar browser dev tools.
135         You can access the browser DevTools at any point of the recording, adding new logger
136         statements and inspecting the status of variables and the current call stack.
137         Your recordings can be shared with other users for collaborative debugging.
138       '';
139       homepage = "https://www.replay.io/";
140       mainProgram = "replay-node";
141       license = lib.licenses.bsd3;
142       maintainers = with maintainers; [ phryneas ];
143       platforms = [ "x86_64-linux" ];
144     };
145   };